aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/shedlang/compiler/stackir
diff options
context:
space:
mode:
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"),