aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-11-22 22:04:27 +0000
committerMichael Williamson <mike@zwobble.org>2023-11-22 22:04:27 +0000
commitd8f48218f7389bcc0bfff1bcf98c0dcf0d34958a (patch)
tree98988ef6ed58feaa2b21e4ff6449c8d12ac1811e /src/test/java
parent5494b33b978fc8ed1f50e63feb658de43bf78f58 (diff)
Add exception type definitions to Patio
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java11
-rw-r--r--src/test/java/org/shedlang/compiler/patio/instructions/Patio.java4
2 files changed, 15 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 7b55bf1a..fced74d5 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioSerializerTests.java
@@ -74,6 +74,17 @@ public class PatioSerializerTests {
}
@Test
+ public void canSerializeExceptionTypeDefinition() {
+ var element = Patio.exceptionTypeDefinition("Error", PatioTypes.INT);
+
+ var string = PatioTesting.serializeCompilationUnitElement(element);
+
+ assertThat(string, equalTo("""
+ (exception-type "Error" int)"""
+ ));
+ }
+
+ @Test
public void canSerializeFunctionDeclaration() {
var element = PatioFunctionDeclaration.builder()
.withName("f")
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 caec005a..44ef8f25 100644
--- a/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
+++ b/src/test/java/org/shedlang/compiler/patio/instructions/Patio.java
@@ -95,6 +95,10 @@ public class Patio {
);
}
+ public static PatioExceptionTypeDefinition exceptionTypeDefinition(String name, PatioType valueType) {
+ return new PatioExceptionTypeDefinition(name, valueType, Sources.NULL);
+ }
+
public static PatioOperand functionPtr(String name) {
return new PatioFunctionPtr(name);
}