aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-16 22:54:10 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-16 22:54:10 +0100
commitff769ec6795b7725f0bfb4d523e2762cb8e1f8c8 (patch)
tree710888ecf950012ea07030e6c71046cba6b20156 /src/test/java
parentdbb847a2e9524e1a6479c13ea2379dfa453bb32b (diff)
Add return instruction
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java9
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/instructions/Instructions.java4
2 files changed, 13 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java b/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java
index bfc3f718..4c1cc6e2 100644
--- a/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java
@@ -138,6 +138,15 @@ public class InstructionSerializerTests {
assertThat(string, equalTo("(push-unit)"));
}
+ @Test
+ public void canSerializeReturn() {
+ var instruction = Instructions.return_();
+
+ var string = serialize(instruction);
+
+ assertThat(string, equalTo("(return)"));
+ }
+
private String serialize(Instruction instruction) {
var builder = new StringBuilder();
InstructionSerializer.serialize(instruction, builder);
diff --git a/src/test/java/org/shedlang/compiler/stackir/instructions/Instructions.java b/src/test/java/org/shedlang/compiler/stackir/instructions/Instructions.java
index d4d5e9e9..33c45a36 100644
--- a/src/test/java/org/shedlang/compiler/stackir/instructions/Instructions.java
+++ b/src/test/java/org/shedlang/compiler/stackir/instructions/Instructions.java
@@ -49,4 +49,8 @@ public class Instructions {
public static Instruction pushUnit() {
return new PushUnitInstruction(Sources.NULL);
}
+
+ public static Instruction return_() {
+ return new ReturnInstruction(Sources.NULL);
+ }
}