aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/shedlang/compiler/stackir
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-09-27 11:30:36 +0100
committerMichael Williamson <mike@zwobble.org>2023-09-27 11:30:36 +0100
commit217cef25875d3ef04f055bed64752db9b2fbb21e (patch)
tree65a5e599b61d5aaba998a02a96cded0f7558f0fe /src/test/java/org/shedlang/compiler/stackir
parent537aefec06307139899e3f2f2cd74842a3af6345 (diff)
Support ignore target
Diffstat (limited to 'src/test/java/org/shedlang/compiler/stackir')
-rw-r--r--src/test/java/org/shedlang/compiler/stackir/StackCompilerAssignTests.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerAssignTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerAssignTests.java
index b717648a..7c49af0a 100644
--- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerAssignTests.java
+++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerAssignTests.java
@@ -11,6 +11,23 @@ import static org.zwobble.precisely.Matchers.isSequence;
public class StackCompilerAssignTests {
@Test
+ public void targetIgnoreIsCompiledToDiscard() {
+ var node = Typed.assign(
+ Typed.targetIgnore(),
+ Typed.reference("x")
+ );
+ var context = StackCompiler.Context.EMPTY
+ .addShedVariable("x");
+
+ var result = StackCompiler.compileFunctionStatement(node, context);
+
+ assertThat(result.instructions(), isSequence(
+ isLocalLoadInstruction("x__0"),
+ isDiscardInstruction()
+ ));
+ }
+
+ @Test
public void whenTargetIsReassignThenExpressionIsEvaluatedAndStoredAsVar() {
var node = Typed.assign(
Typed.targetReassign("x"),