aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/parser/ParserFunctionDefinitionTests.java23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/parser/ParserFunctionDefinitionTests.java b/src/test/java/org/shedlang/compiler/parser/ParserFunctionDefinitionTests.java
index 80ecb5b2..a05642dc 100644
--- a/src/test/java/org/shedlang/compiler/parser/ParserFunctionDefinitionTests.java
+++ b/src/test/java/org/shedlang/compiler/parser/ParserFunctionDefinitionTests.java
@@ -26,6 +26,7 @@ public class ParserFunctionDefinitionTests {
.withBody(isSequence())
);
}
+
@Test
public void canParseFunctionWithEffect() {
var source = """
@@ -40,4 +41,26 @@ public class ParserFunctionDefinitionTests {
.withEffect(isOptionalOf(isUntypedTypeLevelReferenceNode("Io")))
);
}
+
+ @Test
+ public void canParseFunctionWithBody() {
+ var source = """
+ fun f() -> Unit {
+ a;
+ b;
+ c;
+ }""";
+
+ var node = parseString(source, Parser::parseNamespaceStatement);
+
+ assertThat(
+ node,
+ isUntypedFunctionDefinitionNode()
+ .withBody(isSequence(
+ isUntypedExpressionStatementNode(isUntypedReferenceNode("a")),
+ isUntypedExpressionStatementNode(isUntypedReferenceNode("b")),
+ isUntypedExpressionStatementNode(isUntypedReferenceNode("c"))
+ ))
+ );
+ }
}