aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-20 23:52:38 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-20 23:52:38 +0100
commita1c86fe89a5e2b049f81745b0666887766826dd6 (patch)
tree502f569c035a74252f9925bbfe2392ba84569d1d /src/test/java
parent496326a4f3443092a3b0a1128de66f9e3bff1683 (diff)
Add function-ptr operand
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 240a9f6c..27118e18 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
@@ -263,6 +263,15 @@ public class PatioSerializerTests {
}
@Test
+ public void canSerializeFunctionPtr() {
+ var operand = Patio.functionPtr("x");
+
+ var string = PatioTesting.serializeOperand(operand);
+
+ assertThat(string, equalTo("(function-ptr \"x\")"));
+ }
+
+ @Test
public void canSerializeInt() {
var operand = Patio.int_(42);
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 82a4ba13..da00b8e6 100644
--- a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
+++ b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
@@ -56,6 +56,10 @@ public class Patio {
);
}
+ public static PatioOperand functionPtr(String name) {
+ return new PatioFunctionPtr(name);
+ }
+
public static PatioInstruction functionPointerGet(String target, String name) {
return new PatioFunctionPointerGet(new PatioLocalRef(target), name, Sources.NULL);
}