aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-11-11 18:21:38 +0000
committerMichael Williamson <mike@zwobble.org>2023-11-11 18:21:38 +0000
commit8ddcc9410a370664c800525bfedc5a01a61e1489 (patch)
treebaf7fbdaee9e2d89de18abfc106aa00aeb91af7d /src/test/java
parent041d35ae5b61d3dd94bcd164b72158de2049ff18 (diff)
Add builder for DefineFunctionInstruction
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java25
1 files changed, 11 insertions, 14 deletions
diff --git a/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java b/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java
index 4fd9c54a..bcf7e27f 100644
--- a/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java
@@ -1,8 +1,6 @@
package org.shedlang.compiler.stackir;
import org.junit.jupiter.api.Test;
-import org.shedlang.compiler.ast.typed.FreeVariables;
-import org.shedlang.compiler.sources.Sources;
import org.shedlang.compiler.stackir.instructions.DefineFunctionInstruction;
import org.shedlang.compiler.stackir.instructions.Instruction;
import org.shedlang.compiler.stackir.instructions.Instructions;
@@ -40,18 +38,17 @@ public class InstructionSerializerTests {
@Test
public void canSerializeDefineFunction() {
- // TODO: make a builder
- var instruction = new DefineFunctionInstruction(
- "f",
- List.of(Instructions.param("p1"), Instructions.param("p2")),
- List.of(Instructions.param("n1"), Instructions.param("n2")),
- FreeVariables.builder().plus("fv1", Sources.NULL).plus("fv2", Sources.NULL).build(),
- List.of(
- Instructions.pushBool(true),
- Instructions.pushBool(false)
- ),
- Sources.NULL
- );
+ var instruction = DefineFunctionInstruction.builder()
+ .withName("f")
+ .addPositionalParam("p1")
+ .addPositionalParam("p2")
+ .addNamedParam("n1")
+ .addNamedParam("n2")
+ .addFreeVariable("fv1")
+ .addFreeVariable("fv2")
+ .addBodyInstruction(Instructions.pushBool(true))
+ .addBodyInstruction(Instructions.pushBool(false))
+ .build();
var string = serialize(instruction);