aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java6
-rw-r--r--src/main/java/org/shedlang/compiler/types/UserDefinedEffectInfo.java6
2 files changed, 9 insertions, 3 deletions
diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java
index fdc24287..d109f2ae 100644
--- a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java
+++ b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java
@@ -546,7 +546,7 @@ public class TypeChecker {
) {
var effectInfo = context.userDefinedEffectInfo(effect, source);
- return effectInfo.methods().fieldType(fieldName)
+ return effectInfo.methodType(fieldName)
.orElseThrow(() -> new NoSuchFieldError(receiverType, fieldName, source))
.withEffect(effect);
} else {
@@ -1702,8 +1702,8 @@ public class TypeChecker {
for (var untypedHandlerMethod : untyped.handlerMethods()) {
handledFieldNames.add(untypedHandlerMethod.name());
- var effectFieldType = effectInfo.methods()
- .fieldType(untypedHandlerMethod.name())
+ var effectFieldType = effectInfo
+ .methodType(untypedHandlerMethod.name())
.orElseThrow(() -> new NoSuchFieldError(
Types.effectType(handledEffect),
untypedHandlerMethod.name(),
diff --git a/src/main/java/org/shedlang/compiler/types/UserDefinedEffectInfo.java b/src/main/java/org/shedlang/compiler/types/UserDefinedEffectInfo.java
index 0fc32896..d5276e9f 100644
--- a/src/main/java/org/shedlang/compiler/types/UserDefinedEffectInfo.java
+++ b/src/main/java/org/shedlang/compiler/types/UserDefinedEffectInfo.java
@@ -1,6 +1,12 @@
package org.shedlang.compiler.types;
+import java.util.Optional;
+
public record UserDefinedEffectInfo(FieldsInfo<FunctionType> methods) {
+ public Optional<FunctionType> methodType(String methodName) {
+ return methods.fieldType(methodName);
+ }
+
public static Builder builder() {
return new Builder(FieldsInfo.builder());
}