aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-10-01 20:45:04 +0100
committerMichael Williamson <mike@zwobble.org>2023-10-01 20:45:04 +0100
commit9c9fe47aef087f49c673e91b47aac6d403537575 (patch)
tree929dd13d0d65710b8b06568d31564822ffb61a94 /src/test/java
parentaf50498623bd37db5f5b60f2828e81b7e50d2ec4 (diff)
Add unreachable instruction to Patio
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java9
-rw-r--r--src/test/java/org/shedlang/compiler/patio/instructions/Patio.java4
2 files changed, 13 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
index e33ecfc4..d2dd9205 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
@@ -442,6 +442,15 @@ public class PatioSerializerTests {
}
@Test
+ public void canSerializeUnreachable() {
+ var instruction = Patio.unreachable();
+
+ var string = PatioTesting.serializeInstruction(instruction);
+
+ assertThat(string, equalTo("(unreachable)"));
+ }
+
+ @Test
public void canSerializeVarLoad() {
var instruction = Patio.varLoad(
Patio.localRef("target"),
diff --git a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
index 1e22d796..075a9aca 100644
--- a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
+++ b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
@@ -225,6 +225,10 @@ public class Patio {
return new PatioReturn(value, Sources.NULL);
}
+ public static PatioInstruction unreachable() {
+ return new PatioUnreachable(Sources.NULL);
+ }
+
public static PatioLocal.Val val(String name, PatioType type) {
return new PatioLocal.Val(name, type);
}