aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/shedlang/compiler/stackir
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-10-28 23:21:10 +0100
committerMichael Williamson <mike@zwobble.org>2023-10-28 23:21:10 +0100
commit052177994ca489078cf6057064ea2a97b35fe5d1 (patch)
treea5e2d464a0ee9d6a749cfa835ac0539ac39f8920 /src/main/java/org/shedlang/compiler/stackir
parentdcfcdb2b408f05ab6b5d5ca8713c10af4ff80495 (diff)
Introduce TypedFunctionBodyNode
Diffstat (limited to 'src/main/java/org/shedlang/compiler/stackir')
-rw-r--r--src/main/java/org/shedlang/compiler/stackir/StackCompiler.java4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/main/java/org/shedlang/compiler/stackir/StackCompiler.java b/src/main/java/org/shedlang/compiler/stackir/StackCompiler.java
index 33d84149..2bd1229a 100644
--- a/src/main/java/org/shedlang/compiler/stackir/StackCompiler.java
+++ b/src/main/java/org/shedlang/compiler/stackir/StackCompiler.java
@@ -203,7 +203,7 @@ public class StackCompiler {
))
.toList();
- context = compileBlockWithYield(node.body(), context);
+ context = compileBlockWithYield(node.body().block(), context);
switch (node.body().behaviour()) {
case TypedFunctionStatementBehaviour.BlockReturn blockReturn -> {
@@ -221,7 +221,7 @@ public class StackCompiler {
context = context.exitBlock();
var freeVariables = FreeVariables.builder();
- for (var shedFreeVariable : node.freeVariables()) {
+ for (var shedFreeVariable : node.body().freeVariables()) {
var freeVariableLocalName = context.shedVariableToLocal(shedFreeVariable.name());
for (var freeVariableSource : shedFreeVariable.referenceSources()) {
freeVariables = freeVariables.plus(