aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-11-19 14:50:28 +0000
committerMichael Williamson <mike@zwobble.org>2023-11-19 14:50:28 +0000
commit263a232e3b01d1e38a3e1d75de258248395c94e8 (patch)
treef7fb6d1611e9f82a3ca55b461a1eba707a355223 /src/main/java
parente3ba72306045ab47978950c468022f0098610e46 (diff)
Extract declaration to constant
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/patio/PatioCodeGenEffects.java24
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())