aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-09 19:13:02 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-09 19:13:02 +0100
commitbf55e95953edeefad8e83c034bfb4920d99c29ba (patch)
tree7e5e5060bf88af358e90e4d03cccc4c80f7630a3 /src/test/java
parentde846b1c61ba146da38be8a347d1c70dece75e52 (diff)
Add UntypedBlockNode
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/ast/untyped/UntypedFunctionDefinitionNodeMatcher.java2
-rw-r--r--src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java10
-rw-r--r--src/test/java/org/shedlang/compiler/parser/ParserFunctionDefinitionTests.java10
-rw-r--r--src/test/java/org/shedlang/compiler/parser/ParserIfTests.java36
4 files changed, 32 insertions, 26 deletions
diff --git a/src/test/java/org/shedlang/compiler/ast/untyped/UntypedFunctionDefinitionNodeMatcher.java b/src/test/java/org/shedlang/compiler/ast/untyped/UntypedFunctionDefinitionNodeMatcher.java
index 8dae4a31..b94432da 100644
--- a/src/test/java/org/shedlang/compiler/ast/untyped/UntypedFunctionDefinitionNodeMatcher.java
+++ b/src/test/java/org/shedlang/compiler/ast/untyped/UntypedFunctionDefinitionNodeMatcher.java
@@ -29,7 +29,7 @@ public class UntypedFunctionDefinitionNodeMatcher extends MatcherBuilder<Untyped
return new UntypedFunctionDefinitionNodeMatcher(submatchers);
}
- public UntypedFunctionDefinitionNodeMatcher withBody(Matcher<Iterable<? extends UntypedFunctionStatementNode>> body) {
+ public UntypedFunctionDefinitionNodeMatcher withBody(Matcher<UntypedBlockNode> body) {
return with(has("body", x -> x.body(), body));
}
diff --git a/src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java b/src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java
index dce29e55..8ea1e13b 100644
--- a/src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java
+++ b/src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java
@@ -34,6 +34,12 @@ public class UntypedNodeMatchers {
);
}
+ public static Matcher<UntypedBlockNode> isUntypedBlockNode(
+ Matcher<Iterable<? extends UntypedFunctionStatementNode>> statements
+ ) {
+ return has("statements", x -> x.statements(), statements);
+ }
+
public static Matcher<UntypedFunctionStatementNode> isUntypedBlockReturnNode(
Matcher<UntypedExpressionNode> expression
) {
@@ -49,7 +55,7 @@ public class UntypedNodeMatchers {
public static Matcher<UntypedConditionalBranchNode> isUntypedConditionalBranchNode(
Matcher<UntypedExpressionNode> condition,
- Matcher<Iterable<? extends UntypedFunctionStatementNode>> body
+ Matcher<UntypedBlockNode> body
) {
return instanceOf(
UntypedConditionalBranchNode.class,
@@ -89,7 +95,7 @@ public class UntypedNodeMatchers {
public static Matcher<UntypedExpressionNode> isUntypedIfNode(
Matcher<Iterable<? extends UntypedConditionalBranchNode>> conditionalBranches,
- Matcher<Iterable<? extends UntypedFunctionStatementNode>> elseBody
+ Matcher<UntypedBlockNode> elseBody
) {
return instanceOf(
UntypedIfNode.class,
diff --git a/src/test/java/org/shedlang/compiler/parser/ParserFunctionDefinitionTests.java b/src/test/java/org/shedlang/compiler/parser/ParserFunctionDefinitionTests.java
index 279309f6..d799fa4d 100644
--- a/src/test/java/org/shedlang/compiler/parser/ParserFunctionDefinitionTests.java
+++ b/src/test/java/org/shedlang/compiler/parser/ParserFunctionDefinitionTests.java
@@ -25,7 +25,7 @@ public class ParserFunctionDefinitionTests {
.withParams(isUntypedParamsNode(isSequence(), isSequence()))
.withEffect(isOptionalEmpty())
.withReturnType(isUntypedTypeLevelReferenceNode("Unit"))
- .withBody(isSequence())
+ .withBody(isUntypedBlockNode(isSequence()))
);
}
@@ -196,11 +196,11 @@ public class ParserFunctionDefinitionTests {
assertThat(
node,
isUntypedFunctionDefinitionNode()
- .withBody(isSequence(
+ .withBody(isUntypedBlockNode(isSequence(
isUntypedExpressionStatementNode(isUntypedReferenceNode("a")),
isUntypedExpressionStatementNode(isUntypedReferenceNode("b")),
isUntypedExpressionStatementNode(isUntypedReferenceNode("c"))
- ))
+ )))
);
}
@@ -218,11 +218,11 @@ public class ParserFunctionDefinitionTests {
assertThat(
node,
isUntypedFunctionDefinitionNode()
- .withBody(isSequence(
+ .withBody(isUntypedBlockNode(isSequence(
isUntypedExpressionStatementNode(isUntypedReferenceNode("a")),
isUntypedExpressionStatementNode(isUntypedReferenceNode("b")),
isUntypedBlockReturnNode(isUntypedReferenceNode("c"))
- ))
+ )))
);
}
diff --git a/src/test/java/org/shedlang/compiler/parser/ParserIfTests.java b/src/test/java/org/shedlang/compiler/parser/ParserIfTests.java
index 5de0988d..5814dbf1 100644
--- a/src/test/java/org/shedlang/compiler/parser/ParserIfTests.java
+++ b/src/test/java/org/shedlang/compiler/parser/ParserIfTests.java
@@ -18,12 +18,12 @@ public class ParserIfTests {
isSequence(
isUntypedConditionalBranchNode(
isUntypedReferenceNode("a"),
- isSequence(
+ isUntypedBlockNode(isSequence(
isUntypedExpressionStatementNode(isUntypedIntLiteralNode(1))
- )
+ ))
)
),
- isSequence()
+ isUntypedBlockNode(isSequence())
));
}
@@ -37,14 +37,14 @@ public class ParserIfTests {
isSequence(
isUntypedConditionalBranchNode(
isUntypedReferenceNode("a"),
- isSequence(
+ isUntypedBlockNode(isSequence(
isUntypedExpressionStatementNode(isUntypedIntLiteralNode(1))
- )
+ ))
)
),
- isSequence(
+ isUntypedBlockNode(isSequence(
isUntypedExpressionStatementNode(isUntypedIntLiteralNode(2))
- )
+ ))
));
}
@@ -58,18 +58,18 @@ public class ParserIfTests {
isSequence(
isUntypedConditionalBranchNode(
isUntypedReferenceNode("a"),
- isSequence(
+ isUntypedBlockNode(isSequence(
isUntypedExpressionStatementNode(isUntypedIntLiteralNode(1))
- )
+ ))
),
isUntypedConditionalBranchNode(
isUntypedReferenceNode("b"),
- isSequence(
+ isUntypedBlockNode(isSequence(
isUntypedExpressionStatementNode(isUntypedIntLiteralNode(2))
- )
+ ))
)
),
- isSequence()
+ isUntypedBlockNode(isSequence())
));
}
@@ -83,20 +83,20 @@ public class ParserIfTests {
isSequence(
isUntypedConditionalBranchNode(
isUntypedReferenceNode("a"),
- isSequence(
+ isUntypedBlockNode(isSequence(
isUntypedExpressionStatementNode(isUntypedIntLiteralNode(1))
- )
+ ))
),
isUntypedConditionalBranchNode(
isUntypedReferenceNode("b"),
- isSequence(
+ isUntypedBlockNode(isSequence(
isUntypedExpressionStatementNode(isUntypedIntLiteralNode(2))
- )
+ ))
)
),
- isSequence(
+ isUntypedBlockNode(isSequence(
isUntypedExpressionStatementNode(isUntypedIntLiteralNode(3))
- )
+ ))
));
}
}