diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-06-07 20:09:18 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-06-07 20:09:18 +0100 |
| commit | e4790b25e567aeaef20f29d1a6174413bc8ea0f0 (patch) | |
| tree | b5bd25ee79a42f7e76070bab6a489f92ceb086a2 /src/test/java | |
| parent | c7d528851c816f59740b83fa93d99ee857695d59 (diff) | |
Parse body of functions
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/parser/ParserFunctionDefinitionTests.java | 23 |
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")) + )) + ); + } } |
