From 217cef25875d3ef04f055bed64752db9b2fbb21e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Wed, 27 Sep 2023 11:30:36 +0100 Subject: Support ignore target --- .../compiler/stackir/StackCompilerAssignTests.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/test/java/org/shedlang/compiler/stackir') 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 @@ -10,6 +10,23 @@ import static org.zwobble.precisely.AssertThat.assertThat; 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( -- cgit v1.2.3