From 082e7a06ed147d3bce1116d48b0911119b43af71 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 11 Dec 2024 00:49:43 +0000 Subject: Compile Patio code for positional structs --- .../compiler/backends/llvm/Amd64ExampleTests.java | 1 - .../compiler/backends/llvm/I686ExampleTests.java | 1 - .../compiler/backends/wasm/Wasm32ExampleTests.java | 1 - .../compiler/backends/wasm/Wasm64ExampleTests.java | 1 - .../shidtopatio/ShidToPatioDefineStructTests.java | 29 +++++++++++++++++++++- 5 files changed, 28 insertions(+), 5 deletions(-) (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/Amd64ExampleTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/Amd64ExampleTests.java index 9ddf4aea..206f37b9 100644 --- a/src/test/java/org/shedlang/compiler/backends/llvm/Amd64ExampleTests.java +++ b/src/test/java/org/shedlang/compiler/backends/llvm/Amd64ExampleTests.java @@ -23,7 +23,6 @@ public class Amd64ExampleTests extends ExampleTests { } private static final Set DISABLED = Set.of( - "16-struct-positional-fields", "36-extensions" ); diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/I686ExampleTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/I686ExampleTests.java index 91ab47d3..b4d2a763 100644 --- a/src/test/java/org/shedlang/compiler/backends/llvm/I686ExampleTests.java +++ b/src/test/java/org/shedlang/compiler/backends/llvm/I686ExampleTests.java @@ -23,7 +23,6 @@ public class I686ExampleTests extends ExampleTests { } private static final Set DISABLED = Set.of( - "16-struct-positional-fields", "36-extensions" ); diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/Wasm32ExampleTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/Wasm32ExampleTests.java index 11011341..b1ffd742 100644 --- a/src/test/java/org/shedlang/compiler/backends/wasm/Wasm32ExampleTests.java +++ b/src/test/java/org/shedlang/compiler/backends/wasm/Wasm32ExampleTests.java @@ -23,7 +23,6 @@ public class Wasm32ExampleTests extends ExampleTests { } private static final Set DISABLED = Set.of( - "16-struct-positional-fields", "36-extensions" ); diff --git a/src/test/java/org/shedlang/compiler/backends/wasm/Wasm64ExampleTests.java b/src/test/java/org/shedlang/compiler/backends/wasm/Wasm64ExampleTests.java index a855ffb7..3f94a2bd 100644 --- a/src/test/java/org/shedlang/compiler/backends/wasm/Wasm64ExampleTests.java +++ b/src/test/java/org/shedlang/compiler/backends/wasm/Wasm64ExampleTests.java @@ -23,7 +23,6 @@ public class Wasm64ExampleTests extends ExampleTests { } private static final Set DISABLED = Set.of( - "16-struct-positional-fields", "36-extensions" ); diff --git a/src/test/java/org/shedlang/compiler/shidtopatio/ShidToPatioDefineStructTests.java b/src/test/java/org/shedlang/compiler/shidtopatio/ShidToPatioDefineStructTests.java index 4b409c74..b363cbb8 100644 --- a/src/test/java/org/shedlang/compiler/shidtopatio/ShidToPatioDefineStructTests.java +++ b/src/test/java/org/shedlang/compiler/shidtopatio/ShidToPatioDefineStructTests.java @@ -20,7 +20,7 @@ import static org.zwobble.precisely.Matchers.equalTo; @ExtendWith({SnapshotResolver.class}) public class ShidToPatioDefineStructTests { @Test - public void canGenerateCodeForDefineStruct(Snapshotter snapshotter) throws IOException { + public void canGenerateCodeForDefineStructNonPositional(Snapshotter snapshotter) throws IOException { var structType = Types.struct(NamespaceName.of("Example", "Project"), "User"); var instruction = Shid.defineStruct( structType, @@ -35,6 +35,33 @@ public class ShidToPatioDefineStructTests { StructTypeInfo.builder() .addField("name", Types.STRING) .addField("isActive", Types.BOOL) + .withFieldsArePositional(false) + .build() + ); + var context = ShidToPatioContext.forTypeInfos(typeInfos); + + var result = ShidToPatio.generateInstruction(instruction, context); + + snapshotter.assertSnapshot(serialize(result)); + } + + @Test + public void canGenerateCodeForDefineStructPositional(Snapshotter snapshotter) throws IOException { + var structType = Types.struct(NamespaceName.of("Example", "Project"), "User"); + var instruction = Shid.defineStruct( + structType, + List.of( + Shid.defineStructField("name"), + Shid.defineStructField("isActive") + ) + ); + var typeInfos = TypeInfos.EMPTY + .addStructTypeInfo( + structType, + StructTypeInfo.builder() + .addField("name", Types.STRING) + .addField("isActive", Types.BOOL) + .withFieldsArePositional(true) .build() ); var context = ShidToPatioContext.forTypeInfos(typeInfos); -- cgit v1.2.3