diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-11-11 18:21:38 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-11-11 18:21:38 +0000 |
| commit | 8ddcc9410a370664c800525bfedc5a01a61e1489 (patch) | |
| tree | baf7fbdaee9e2d89de18abfc106aa00aeb91af7d /src/test/java | |
| parent | 041d35ae5b61d3dd94bcd164b72158de2049ff18 (diff) | |
Add builder for DefineFunctionInstruction
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java | 25 |
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); |
