From 5e30f2e61066ff01d4a56474b7b969b9db80ff84 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 19 Nov 2023 10:39:14 +0000 Subject: Add methodType() to UserDefinedEffectInfo --- src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java | 6 +++--- .../java/org/shedlang/compiler/types/UserDefinedEffectInfo.java | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'src/main/java') 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 methods) { + public Optional methodType(String methodName) { + return methods.fieldType(methodName); + } + public static Builder builder() { return new Builder(FieldsInfo.builder()); } -- cgit v1.2.3