diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-12-02 14:25:46 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-12-02 14:26:37 +0000 |
| commit | 689c9c1e8af8fd2fff2b390649a59e613e85eb6a (patch) | |
| tree | c2172339570164b3d69db442bb971a5ba383cd8c /src/test/java/org/shedlang/compiler/stackir | |
| parent | ae2db7337845cde0c56cd99564060b974e125f65 (diff) | |
Add resume instruction
Diffstat (limited to 'src/test/java/org/shedlang/compiler/stackir')
4 files changed, 21 insertions, 3 deletions
diff --git a/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java b/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java index 2f8c4c44..c36977cf 100644 --- a/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java +++ b/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java @@ -333,6 +333,15 @@ public class InstructionSerializerTests { } @Test + public void canSerializeResume() { + var instruction = Instructions.resume(); + + var string = serialize(instruction); + + assertThat(string, equalTo("(resume)")); + } + + @Test public void canSerializeReturn() { var instruction = Instructions.return_(); diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionResumeTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionResumeTests.java index 1aa61a57..06c967f9 100644 --- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionResumeTests.java +++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerFunctionResumeTests.java @@ -3,8 +3,7 @@ package org.shedlang.compiler.stackir; import org.junit.jupiter.api.Test; import org.shedlang.compiler.ast.typed.Typed; -import static org.shedlang.compiler.stackir.instructions.InstructionMatchers.isPushStringInstruction; -import static org.shedlang.compiler.stackir.instructions.InstructionMatchers.isReturnInstruction; +import static org.shedlang.compiler.stackir.instructions.InstructionMatchers.*; import static org.zwobble.precisely.AssertThat.assertThat; import static org.zwobble.precisely.Matchers.isSequence; @@ -18,7 +17,7 @@ public class StackCompilerFunctionResumeTests { assertThat(result.instructions(), isSequence( isPushStringInstruction("hello"), - isReturnInstruction() + isResumeInstruction() )); } } 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 a33f4f6c..34c94f0e 100644 --- a/src/test/java/org/shedlang/compiler/stackir/instructions/InstructionMatchers.java +++ b/src/test/java/org/shedlang/compiler/stackir/instructions/InstructionMatchers.java @@ -164,6 +164,12 @@ public class InstructionMatchers { ); } + public static Matcher<Instruction> isResumeInstruction() { + return instanceOf( + ResumeInstruction.class + ); + } + public static Matcher<Instruction> isReturnInstruction() { return instanceOf( ReturnInstruction.class 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 ae776fc7..ce6ebf37 100644 --- a/src/test/java/org/shedlang/compiler/stackir/instructions/Instructions.java +++ b/src/test/java/org/shedlang/compiler/stackir/instructions/Instructions.java @@ -139,6 +139,10 @@ public class Instructions { return new PushUnitInstruction(Sources.NULL); } + public static Instruction resume() { + return new ResumeInstruction(Sources.NULL); + } + public static Instruction return_() { return new ReturnInstruction(Sources.NULL); } |
