aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-11-07 18:41:16 +0000
committerMichael Williamson <mike@zwobble.org>2023-11-07 18:41:16 +0000
commitb02598aa7b8d02e2f1177177d6e0cd7b2d805198 (patch)
tree07005fad55512bd5645e4fea216a7b800d44a9bc /src/main/java
parent48560d9b326a9edb73231e816791edc1b196b1b1 (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.java2
-rw-r--r--src/main/java/org/shedlang/compiler/ast/untyped/UntypedTryNode.java14
-rw-r--r--src/main/java/org/shedlang/compiler/parser/Parser.java4
-rw-r--r--src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java40
-rw-r--r--src/main/java/org/shedlang/compiler/typechecker/errors/CannotResumeOutsideOfEffectHandlerFieldError.java10
-rw-r--r--src/main/java/org/shedlang/compiler/typechecker/errors/CannotResumeOutsideOfEffectHandlerMethodError.java10
-rw-r--r--src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnFromEffectHandlerFieldError.java10
-rw-r--r--src/main/java/org/shedlang/compiler/typechecker/errors/CannotReturnFromEffectHandlerMethodError.java10
-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;
}