diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-11-07 19:47:34 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-11-07 19:47:34 +0000 |
| commit | 7488757d0386b7770d321177e2c893ba1c060f26 (patch) | |
| tree | cc6ecf2f0def11291bfe93faa99c73abf0adb1d4 /src/test/java | |
| parent | 965936c9d2983fae0201412df1d7adf4a1bc1c66 (diff) | |
Add define-effect instruction
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java | 14 | ||||
| -rw-r--r-- | src/test/java/org/shedlang/compiler/stackir/instructions/Instructions.java | 5 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java b/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java index e2294588..4fd9c54a 100644 --- a/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java +++ b/src/test/java/org/shedlang/compiler/stackir/InstructionSerializerTests.java @@ -6,6 +6,7 @@ import org.shedlang.compiler.sources.Sources; import org.shedlang.compiler.stackir.instructions.DefineFunctionInstruction; import org.shedlang.compiler.stackir.instructions.Instruction; import org.shedlang.compiler.stackir.instructions.Instructions; +import org.shedlang.compiler.types.Effects; import org.shedlang.compiler.types.NamespaceName; import org.shedlang.compiler.types.Types; @@ -25,6 +26,19 @@ public class InstructionSerializerTests { } @Test + public void canSerializeDefineEffect() { + var instruction = Instructions.defineEffect( + Effects.userDefined(NamespaceName.of("Example", "Project"), "State") + ); + + var string = serialize(instruction); + + assertThat(string, equalTo(""" + (define-effect "Example/Project.State")""" + )); + } + + @Test public void canSerializeDefineFunction() { // TODO: make a builder var instruction = new DefineFunctionInstruction( 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 4971575c..643d9446 100644 --- a/src/test/java/org/shedlang/compiler/stackir/instructions/Instructions.java +++ b/src/test/java/org/shedlang/compiler/stackir/instructions/Instructions.java @@ -3,6 +3,7 @@ package org.shedlang.compiler.stackir.instructions; import org.shedlang.compiler.sources.Sources; import org.shedlang.compiler.types.NamespaceName; import org.shedlang.compiler.types.StructType; +import org.shedlang.compiler.types.UserDefinedEffect; import java.math.BigInteger; import java.util.List; @@ -15,6 +16,10 @@ public class Instructions { return new CallInstruction(positionalArgCount, namedArgNames, Sources.NULL); } + public static Instruction defineEffect(UserDefinedEffect effect) { + return new DefineEffectInstruction(effect, Sources.NULL); + } + public static Instruction defineStruct( StructType type, List<DefineStructInstruction.Field> fields |
