diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-11-19 14:50:28 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-11-19 14:50:28 +0000 |
| commit | 263a232e3b01d1e38a3e1d75de258248395c94e8 (patch) | |
| tree | f7fb6d1611e9f82a3ca55b461a1eba707a355223 /src/main/java | |
| parent | e3ba72306045ab47978950c468022f0098610e46 (diff) | |
Extract declaration to constant
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/patio/PatioCodeGenEffects.java | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/main/java/org/shedlang/compiler/patio/PatioCodeGenEffects.java b/src/main/java/org/shedlang/compiler/patio/PatioCodeGenEffects.java index 63267c54..fa83c187 100644 --- a/src/main/java/org/shedlang/compiler/patio/PatioCodeGenEffects.java +++ b/src/main/java/org/shedlang/compiler/patio/PatioCodeGenEffects.java @@ -25,6 +25,16 @@ public class PatioCodeGenEffects { private static final PatioType EFFECT_TAG_TYPE = PatioTypes.INT; private static final PatioType EFFECT_METHOD_INDEX_TYPE = PatioTypes.INT; + private static final PatioFunctionDeclaration FIND_HANDLER_METHOD_DECLARATION = new PatioFunctionDeclaration( + "shed__runtime__effects_find_handler_method", + List.of( + new PatioLocal.Param("effectTag", EFFECT_TAG_TYPE), + new PatioLocal.Param("methodIndex", EFFECT_METHOD_INDEX_TYPE) + ), + PatioCodeGenTypes.VALUE_TYPE, + Sources.RUNTIME + ); + private PatioCodeGenEffects() { } @@ -74,17 +84,7 @@ public class PatioCodeGenEffects { .toList(), FreeVariables.empty(), bodyContext -> { - var runtimeFindHandlerMethodName = "shed__runtime__effects_find_handler_method"; - - bodyContext = bodyContext.ensureCompilationUnitElement(new PatioFunctionDeclaration( - runtimeFindHandlerMethodName, - List.of( - new PatioLocal.Param("effectTag", EFFECT_TAG_TYPE), - new PatioLocal.Param("methodIndex", EFFECT_METHOD_INDEX_TYPE) - ), - PatioCodeGenTypes.VALUE_TYPE, - Sources.RUNTIME - )); + bodyContext = bodyContext.ensureCompilationUnitElement(FIND_HANDLER_METHOD_DECLARATION); var handlerMethodResult = bodyContext.allocateVal( PatioCodeGenLocalSpace.EFFECT_HANDLER_METHOD, @@ -95,7 +95,7 @@ public class PatioCodeGenEffects { bodyContext = bodyContext.addInstruction(new PatioCall( Optional.of(handlerMethod), - runtimeFindHandlerMethodName, + FIND_HANDLER_METHOD_DECLARATION.name(), List.of( new PatioInt(bodyContext.effectTag(effect)), new PatioInt(method.fieldIndex()) |
