diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-09-27 11:30:36 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-09-27 11:30:36 +0100 |
| commit | 217cef25875d3ef04f055bed64752db9b2fbb21e (patch) | |
| tree | 65a5e599b61d5aaba998a02a96cded0f7558f0fe /src/test/java/org/shedlang/compiler/stackir | |
| parent | 537aefec06307139899e3f2f2cd74842a3af6345 (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.java | 17 |
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"), |
