diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-11-19 10:39:14 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-11-19 10:43:06 +0000 |
| commit | 5e30f2e61066ff01d4a56474b7b969b9db80ff84 (patch) | |
| tree | c4e882d63b9a95b6e34c56cee677b7c98f012b1c /src/main/java | |
| parent | dde9f5d961dc8a3bbaeba18b25d9d7b68ce66e36 (diff) | |
Add methodType() to UserDefinedEffectInfo
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java | 6 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/types/UserDefinedEffectInfo.java | 6 |
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()); } |
