From 965936c9d2983fae0201412df1d7adf4a1bc1c66 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 7 Nov 2023 18:59:44 +0000 Subject: Rename effect field to effect method --- .../ast/untyped/UntypedEffectDefinitionFieldNode.java | 10 ---------- .../ast/untyped/UntypedEffectDefinitionMethodNode.java | 10 ++++++++++ .../compiler/ast/untyped/UntypedEffectDefinitionNode.java | 12 ++++++------ src/main/java/org/shedlang/compiler/parser/Parser.java | 4 ++-- .../java/org/shedlang/compiler/typechecker/TypeChecker.java | 8 ++++---- .../org/shedlang/compiler/types/UserDefinedEffectInfo.java | 8 ++++---- 6 files changed, 26 insertions(+), 26 deletions(-) delete mode 100644 src/main/java/org/shedlang/compiler/ast/untyped/UntypedEffectDefinitionFieldNode.java create mode 100644 src/main/java/org/shedlang/compiler/ast/untyped/UntypedEffectDefinitionMethodNode.java (limited to 'src/main/java') diff --git a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedEffectDefinitionFieldNode.java b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedEffectDefinitionFieldNode.java deleted file mode 100644 index 3ab90d57..00000000 --- a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedEffectDefinitionFieldNode.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.shedlang.compiler.ast.untyped; - -import org.shedlang.compiler.sources.Source; - -public record UntypedEffectDefinitionFieldNode( - String name, - UntypedFunctionTypeNode type, - Source source -) implements UntypedNode { -} diff --git a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedEffectDefinitionMethodNode.java b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedEffectDefinitionMethodNode.java new file mode 100644 index 00000000..461e3dd5 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedEffectDefinitionMethodNode.java @@ -0,0 +1,10 @@ +package org.shedlang.compiler.ast.untyped; + +import org.shedlang.compiler.sources.Source; + +public record UntypedEffectDefinitionMethodNode( + String name, + UntypedFunctionTypeNode type, + Source source +) implements UntypedNode { +} diff --git a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedEffectDefinitionNode.java b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedEffectDefinitionNode.java index 1e4f7e35..37f3dce1 100644 --- a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedEffectDefinitionNode.java +++ b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedEffectDefinitionNode.java @@ -11,7 +11,7 @@ import java.util.List; public record UntypedEffectDefinitionNode( String name, Visibility visibility, - List fields, + List methods, Source source ) implements UntypedNamespaceStatementNode, UntypedVariableDeclarationNode { public static Builder builder() { @@ -25,13 +25,13 @@ public record UntypedEffectDefinitionNode( public record Builder( String name, Visibility visibility, - PVector fields + PVector methods ) { public UntypedEffectDefinitionNode build() { return new UntypedEffectDefinitionNode( name, visibility, - fields, + methods, Sources.NULL ); } @@ -40,15 +40,15 @@ public record UntypedEffectDefinitionNode( return new Builder( name, this.visibility, - this.fields + this.methods ); } - public Builder addField(String name, UntypedFunctionTypeNode type) { + public Builder addMethod(String name, UntypedFunctionTypeNode type) { return new Builder( this.name, this.visibility, - this.fields.plus(new UntypedEffectDefinitionFieldNode(name, type, Sources.NULL)) + this.methods.plus(new UntypedEffectDefinitionMethodNode(name, type, Sources.NULL)) ); } } diff --git a/src/main/java/org/shedlang/compiler/parser/Parser.java b/src/main/java/org/shedlang/compiler/parser/Parser.java index 7536f3b9..55e2202d 100644 --- a/src/main/java/org/shedlang/compiler/parser/Parser.java +++ b/src/main/java/org/shedlang/compiler/parser/Parser.java @@ -226,7 +226,7 @@ public class Parser { return new UntypedEffectDefinitionNode(name, visibility, functions, source); } - private static UntypedEffectDefinitionFieldNode parseEffectDefinitionField( + private static UntypedEffectDefinitionMethodNode parseEffectDefinitionField( TokenIterator tokens ) { var start = tokens.position(); @@ -242,7 +242,7 @@ public class Parser { var end = tokens.position(); var source = start.to(end); - return new UntypedEffectDefinitionFieldNode(name, type, source); + return new UntypedEffectDefinitionMethodNode(name, type, source); } private static UntypedFunctionTypeNode parseEffectDefinitionFieldType( diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java index 29afe86f..51bb441f 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java +++ b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java @@ -407,7 +407,7 @@ public class TypeChecker { public TypeCheckerContext defineTypes(TypeCheckerContext context) { var effect = context.getLexicalState(UserDefinedEffect.class, untyped.name()); - var fields = untyped.fields().stream() + var fields = untyped.methods().stream() .map(fieldNode -> { var typedFunctionTypeNode = typeCheckFunctionType(fieldNode.type(), context); return new FieldInfo<>(fieldNode.name(), typedFunctionTypeNode.value()); @@ -539,7 +539,7 @@ public class TypeChecker { ) { var effectInfo = context.userDefinedEffectInfo(effect, source); - return effectInfo.fields().fieldType(fieldName) + return effectInfo.methods().fieldType(fieldName) .orElseThrow(() -> new NoSuchFieldError(receiverType, fieldName, source)) .withEffect(effect); } else { @@ -1682,7 +1682,7 @@ public class TypeChecker { for (var untypedHandlerMethod : untyped.handlerMethods()) { handledFieldNames.add(untypedHandlerMethod.name()); - var effectFieldType = effectInfo.fields() + var effectFieldType = effectInfo.methods() .fieldType(untypedHandlerMethod.name()) .orElseThrow(() -> new NoSuchFieldError( Types.effectType(handledEffect), @@ -1705,7 +1705,7 @@ public class TypeChecker { } // TODO: Don't create unnecessary list - for (var effectField : effectInfo.fields().stream().toList()) { + for (var effectField : effectInfo.methods().stream().toList()) { if (!handledFieldNames.contains(effectField.name())) { throw new MissingEffectHandlerMethodError(effectField.name(), untyped.source()); } diff --git a/src/main/java/org/shedlang/compiler/types/UserDefinedEffectInfo.java b/src/main/java/org/shedlang/compiler/types/UserDefinedEffectInfo.java index 1785d22b..5282a9a4 100644 --- a/src/main/java/org/shedlang/compiler/types/UserDefinedEffectInfo.java +++ b/src/main/java/org/shedlang/compiler/types/UserDefinedEffectInfo.java @@ -1,17 +1,17 @@ package org.shedlang.compiler.types; -public record UserDefinedEffectInfo(FieldsInfo fields) { +public record UserDefinedEffectInfo(FieldsInfo methods) { public static Builder builder() { return new Builder(FieldsInfo.builder()); } - public record Builder(FieldsInfo.Builder fields) { + public record Builder(FieldsInfo.Builder methods) { public UserDefinedEffectInfo build() { - return new UserDefinedEffectInfo(fields.build()); + return new UserDefinedEffectInfo(methods.build()); } public Builder addField(String name, FunctionType type) { - return new Builder(this.fields.addField(name, type)); + return new Builder(this.methods.addField(name, type)); } } } -- cgit v1.2.3