diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-11-07 18:41:16 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-11-07 18:41:16 +0000 |
| commit | b02598aa7b8d02e2f1177177d6e0cd7b2d805198 (patch) | |
| tree | 07005fad55512bd5645e4fea216a7b800d44a9bc /src/main/java | |
| parent | 48560d9b326a9edb73231e816791edc1b196b1b1 (diff) | |
Rename effect fields to effect methods
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/ast/typed/TypedTryNode.java | 2 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/ast/untyped/UntypedTryNode.java | 14 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/parser/Parser.java | 4 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java | 40 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/typechecker/errors/CannotResumeOutsideOfEffectHandlerFieldError.java | 10 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/typechecker/errors/CannotResumeOutsideOfEffectHandlerMethodError.java | 10 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnFromEffectHandlerFieldError.java | 10 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnFromEffectHandlerMethodError.java | 10 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/typechecker/errors/MissingEffectHandlerMethodError.java (renamed from src/main/java/org/shedlang/compiler/typechecker/errors/MissingEffectHandlerFieldError.java) | 6 |
9 files changed, 53 insertions, 53 deletions
diff --git a/src/main/java/org/shedlang/compiler/ast/typed/TypedTryNode.java b/src/main/java/org/shedlang/compiler/ast/typed/TypedTryNode.java index dd782a50..b58b0b3a 100644 --- a/src/main/java/org/shedlang/compiler/ast/typed/TypedTryNode.java +++ b/src/main/java/org/shedlang/compiler/ast/typed/TypedTryNode.java @@ -9,7 +9,7 @@ import java.util.List; public record TypedTryNode( TypedBlockNode body, TypedTypeLevelExpressionNode<Effect> handledEffect, - List<TypedFunctionDefinitionNode> handlerFields, + List<TypedFunctionDefinitionNode> handlerMethods, Source source ) implements TypedExpressionNode { @Override diff --git a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedTryNode.java b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedTryNode.java index c89aff2a..a411039e 100644 --- a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedTryNode.java +++ b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedTryNode.java @@ -10,7 +10,7 @@ import java.util.List; public record UntypedTryNode( UntypedBlockNode body, UntypedTypeLevelExpressionNode handledEffect, - List<UntypedFunctionDefinitionNode> handlerFields, + List<UntypedFunctionDefinitionNode> handlerMethods, Source source ) implements UntypedExpressionNode { public static Builder builder() { @@ -24,13 +24,13 @@ public record UntypedTryNode( public record Builder( PVector<UntypedFunctionStatementNode> body, UntypedTypeLevelExpressionNode handledEffect, - PVector<UntypedFunctionDefinitionNode> handlerFields + PVector<UntypedFunctionDefinitionNode> handlerMethods ) { public UntypedTryNode build() { return new UntypedTryNode( new UntypedBlockNode(body, Sources.NULL), handledEffect, - handlerFields, + handlerMethods, Sources.NULL ); } @@ -39,7 +39,7 @@ public record UntypedTryNode( return new Builder( this.body.plus(statement), this.handledEffect, - this.handlerFields + this.handlerMethods ); } @@ -47,15 +47,15 @@ public record UntypedTryNode( return new Builder( this.body, handledEffect, - this.handlerFields + this.handlerMethods ); } - public Builder addHandlerField(UntypedFunctionDefinitionNode handlerField) { + public Builder addHandlerMethod(UntypedFunctionDefinitionNode handlerMethod) { return new Builder( this.body, this.handledEffect, - this.handlerFields.plus(handlerField) + this.handlerMethods.plus(handlerMethod) ); } } diff --git a/src/main/java/org/shedlang/compiler/parser/Parser.java b/src/main/java/org/shedlang/compiler/parser/Parser.java index b858534e..7536f3b9 100644 --- a/src/main/java/org/shedlang/compiler/parser/Parser.java +++ b/src/main/java/org/shedlang/compiler/parser/Parser.java @@ -1095,7 +1095,7 @@ public class Parser { tokens.skip(TokenType.SYMBOL_BRACE_OPEN); - var handlerFields = parseMany( + var handlerMethods = parseMany( () -> tokens.isNext(TokenType.SYMBOL_BRACE_CLOSE), () -> parseFunctionDefinition(tokens), () -> true @@ -1106,7 +1106,7 @@ public class Parser { var end = tokens.position(); var source = start.to(end); - return new UntypedTryNode(body, handledEffect, handlerFields, source); + return new UntypedTryNode(body, handledEffect, handlerMethods, source); } private static UntypedExpressionNode parseTuple( diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java index d04bcea4..d31876d4 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java +++ b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java @@ -854,7 +854,7 @@ public class TypeChecker { throw new CannotReturnOutsideOfFunctionError(returnValueSource); } case ReturnTypeState.EffectHandler effectHandler -> { - throw new CannotReturnFromEffectHandlerFieldError(returnValueSource); + throw new CannotReturnFromEffectHandlerMethodError(returnValueSource); } }; @@ -1292,16 +1292,16 @@ public class TypeChecker { ) { switch (context.returnTypeState()) { case ReturnTypeState.Explicit explicit -> { - throw new CannotResumeOutsideOfEffectHandlerFieldError(untyped.source()); + throw new CannotResumeOutsideOfEffectHandlerMethodError(untyped.source()); } case ReturnTypeState.ImplicitUnknown implicitUnknown -> { - throw new CannotResumeOutsideOfEffectHandlerFieldError(untyped.source()); + throw new CannotResumeOutsideOfEffectHandlerMethodError(untyped.source()); } case ReturnTypeState.ImplicitLowerBound implicitLowerBound -> { - throw new CannotResumeOutsideOfEffectHandlerFieldError(untyped.source()); + throw new CannotResumeOutsideOfEffectHandlerMethodError(untyped.source()); } case ReturnTypeState.NotInFunction notInFunction -> { - throw new CannotResumeOutsideOfEffectHandlerFieldError(untyped.source()); + throw new CannotResumeOutsideOfEffectHandlerMethodError(untyped.source()); } case ReturnTypeState.EffectHandler effectHandler -> { var typedExpressionResult = typeCheckExpressionOptional( @@ -1678,48 +1678,48 @@ public class TypeChecker { var effectInfo = context.userDefinedEffectInfo(handledEffect, typedHandledEffect.source()); var handledFieldNames = new HashSet<String>(); - var typedHandlerFields = new ArrayList<TypedFunctionDefinitionNode>(); - for (var untypedHandlerField : untyped.handlerFields()) { - handledFieldNames.add(untypedHandlerField.name()); + var typedHandlerMethods = new ArrayList<TypedFunctionDefinitionNode>(); + for (var untypedHandlerMethod : untyped.handlerMethods()) { + handledFieldNames.add(untypedHandlerMethod.name()); var effectFieldType = effectInfo.fields() - .fieldType(untypedHandlerField.name()) + .fieldType(untypedHandlerMethod.name()) .orElseThrow(() -> new NoSuchFieldError( Types.effectType(handledEffect), - untypedHandlerField.name(), - untypedHandlerField.source() + untypedHandlerMethod.name(), + untypedHandlerMethod.source() )); - var typedHandlerFieldResult = typeCheckTryHandlerField(untypedHandlerField, effectFieldType, context); - var typedHandlerField = typedHandlerFieldResult.value(); - context = typedHandlerFieldResult.context(); + var typedHandlerMethodResult = typeCheckTryHandlerMethod(untypedHandlerMethod, effectFieldType, context); + var typedHandlerMethod = typedHandlerMethodResult.value(); + context = typedHandlerMethodResult.context(); checkIsSubType( - typedHandlerField.type().withEffect(Effects.NONE), + typedHandlerMethod.type().withEffect(Effects.NONE), effectFieldType, - untypedHandlerField.source(), + untypedHandlerMethod.source(), context ); - typedHandlerFields.add(typedHandlerField); + typedHandlerMethods.add(typedHandlerMethod); } // TODO: Don't create unnecessary list for (var effectField : effectInfo.fields().stream().toList()) { if (!handledFieldNames.contains(effectField.name())) { - throw new MissingEffectHandlerFieldError(effectField.name(), untyped.source()); + throw new MissingEffectHandlerMethodError(effectField.name(), untyped.source()); } } return context.toResult(new TypedTryNode( typedBody, typedHandledEffect, - typedHandlerFields, + typedHandlerMethods, untyped.source() )); } - private static TypeCheckerResult<TypedFunctionDefinitionNode> typeCheckTryHandlerField( + private static TypeCheckerResult<TypedFunctionDefinitionNode> typeCheckTryHandlerMethod( UntypedFunctionDefinitionNode untyped, FunctionType effectFieldType, TypeCheckerContext context diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotResumeOutsideOfEffectHandlerFieldError.java b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotResumeOutsideOfEffectHandlerFieldError.java deleted file mode 100644 index 6d53c809..00000000 --- a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotResumeOutsideOfEffectHandlerFieldError.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.shedlang.compiler.typechecker.errors; - -import org.shedlang.compiler.errors.SourceError; -import org.shedlang.compiler.sources.Source; - -public class CannotResumeOutsideOfEffectHandlerFieldError extends SourceError { - public CannotResumeOutsideOfEffectHandlerFieldError(Source source) { - super("Cannot return outside of effect handler field", source); - } -} diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotResumeOutsideOfEffectHandlerMethodError.java b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotResumeOutsideOfEffectHandlerMethodError.java new file mode 100644 index 00000000..2fedb9c8 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotResumeOutsideOfEffectHandlerMethodError.java @@ -0,0 +1,10 @@ +package org.shedlang.compiler.typechecker.errors; + +import org.shedlang.compiler.errors.SourceError; +import org.shedlang.compiler.sources.Source; + +public class CannotResumeOutsideOfEffectHandlerMethodError extends SourceError { + public CannotResumeOutsideOfEffectHandlerMethodError(Source source) { + super("Cannot return outside of effect handler method", source); + } +} diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnFromEffectHandlerFieldError.java b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnFromEffectHandlerFieldError.java deleted file mode 100644 index e887f353..00000000 --- a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnFromEffectHandlerFieldError.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.shedlang.compiler.typechecker.errors; - -import org.shedlang.compiler.errors.SourceError; -import org.shedlang.compiler.sources.Source; - -public class CannotReturnFromEffectHandlerFieldError extends SourceError { - public CannotReturnFromEffectHandlerFieldError(Source source) { - super("Cannot return from effect handler field", source); - } -} diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnFromEffectHandlerMethodError.java b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnFromEffectHandlerMethodError.java new file mode 100644 index 00000000..1c174040 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnFromEffectHandlerMethodError.java @@ -0,0 +1,10 @@ +package org.shedlang.compiler.typechecker.errors; + +import org.shedlang.compiler.errors.SourceError; +import org.shedlang.compiler.sources.Source; + +public class CannotReturnFromEffectHandlerMethodError extends SourceError { + public CannotReturnFromEffectHandlerMethodError(Source source) { + super("Cannot return from effect handler method", source); + } +} diff --git a/src/main/java/org/shedlang/compiler/typechecker/errors/MissingEffectHandlerFieldError.java b/src/main/java/org/shedlang/compiler/typechecker/errors/MissingEffectHandlerMethodError.java index c08b293a..0de0569b 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/errors/MissingEffectHandlerFieldError.java +++ b/src/main/java/org/shedlang/compiler/typechecker/errors/MissingEffectHandlerMethodError.java @@ -3,11 +3,11 @@ package org.shedlang.compiler.typechecker.errors; import org.shedlang.compiler.errors.SourceError; import org.shedlang.compiler.sources.Source; -public class MissingEffectHandlerFieldError extends SourceError { +public class MissingEffectHandlerMethodError extends SourceError { private final String fieldName; - public MissingEffectHandlerFieldError(String fieldName, Source source) { - super("Missing effect handler field: " + fieldName, source); + public MissingEffectHandlerMethodError(String fieldName, Source source) { + super("Missing effect handler method: " + fieldName, source); this.fieldName = fieldName; } |
