From 357e3977eff476e67139848d09ec63d3e503873b Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 3 Jul 2023 20:17:26 +0100 Subject: Compile val node as namespace statement to stack IR --- .../compiler/stackir/StackCompilerValTests.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/stackir/StackCompilerValTests.java b/src/test/java/org/shedlang/compiler/stackir/StackCompilerValTests.java index 3126c82b..a03e91b6 100644 --- a/src/test/java/org/shedlang/compiler/stackir/StackCompilerValTests.java +++ b/src/test/java/org/shedlang/compiler/stackir/StackCompilerValTests.java @@ -9,7 +9,7 @@ import static org.zwobble.precisely.Matchers.isSequence; public class StackCompilerValTests { @Test - public void expressionIsEvaluatedAndStoredAsLocal() { + public void whenValIsFunctionStatementThenExpressionIsEvaluatedAndStoredAsLocal() { var node = Typed.val( Typed.targetVariable("x"), Typed.stringLiteral("hello") @@ -22,4 +22,19 @@ public class StackCompilerValTests { isLocalStoreInstruction("x") )); } + + @Test + public void whenValIsNamespaceStatementThenExpressionIsEvaluatedAndStoredAsLocal() { + var node = Typed.val( + Typed.targetVariable("x"), + Typed.stringLiteral("hello") + ); + + var instructions = StackCompiler.compileNamespaceStatement(node); + + assertThat(instructions, isSequence( + isPushStringInstruction("hello"), + isLocalStoreInstruction("x") + )); + } } -- cgit v1.2.3