aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-11 10:30:31 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-11 10:30:31 +0100
commitaa7ae2695c1ee5b919832b84df401614a7500a27 (patch)
tree8a998df9eeb316e71d960bba45e3eca51b4275a7 /src/test/java
parentc5bf0550ad465bed16dab1d9c8bed8d2a036d6ab (diff)
Push unit at end of function definition body
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionDefinitionTests.java3
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/instructions/InstructionMatchers.java6
2 files changed, 8 insertions, 1 deletions
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionDefinitionTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionDefinitionTests.java
index 1fa6c41a..1c90a0a7 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionDefinitionTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionDefinitionTests.java
@@ -36,7 +36,8 @@ public class StackCompilerFunctionDefinitionTests {
has("freeVariables", x -> x.freeVariables(), containsExactly(equalTo("z"))),
has("body", x -> x.body(), isSequence(
isPushStringInstruction("hello"),
- isDiscardInstruction()
+ isDiscardInstruction(),
+ isPushUnitInstruction()
))
),
isLocalStoreInstruction("f")
diff --git a/src/test/java/org/shedlang/compiler/stackir/instructions/InstructionMatchers.java b/src/test/java/org/shedlang/compiler/stackir/instructions/InstructionMatchers.java
index bfac50ce..0cbad43d 100644
--- a/src/test/java/org/shedlang/compiler/stackir/instructions/InstructionMatchers.java
+++ b/src/test/java/org/shedlang/compiler/stackir/instructions/InstructionMatchers.java
@@ -73,4 +73,10 @@ public class InstructionMatchers {
has("value", x -> x.value(), equalTo(value))
);
}
+
+ public static Matcher<Instruction> isPushUnitInstruction() {
+ return instanceOf(
+ PushUnitInstruction.class
+ );
+ }
}