aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-10-29 20:30:37 +0000
committerMichael Williamson <mike@zwobble.org>2023-10-29 20:34:57 +0000
commit1353fdb3257c2a6c249b4bb11b0f13f382c22459 (patch)
treecf0eebf348f72cfa4c1f6b3a505d22057fd388ef /src/test/java
parent7d1b7f9ac8dbba1ab00a5f712c1f0049215f0e85 (diff)
Add separate type for named params in function type
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/ast/untyped/UntypedFunctionTypeNodeMatcher.java2
-rw-r--r--src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java30
-rw-r--r--src/test/java/org/shedlang/compiler/parser/ParserFunctionTypeTests.java24
3 files changed, 33 insertions, 23 deletions
diff --git a/src/test/java/org/shedlang/compiler/ast/untyped/UntypedFunctionTypeNodeMatcher.java b/src/test/java/org/shedlang/compiler/ast/untyped/UntypedFunctionTypeNodeMatcher.java
index 166dd1b0..eb13ced4 100644
--- a/src/test/java/org/shedlang/compiler/ast/untyped/UntypedFunctionTypeNodeMatcher.java
+++ b/src/test/java/org/shedlang/compiler/ast/untyped/UntypedFunctionTypeNodeMatcher.java
@@ -38,7 +38,7 @@ public class UntypedFunctionTypeNodeMatcher extends MatcherBuilder<
return with(has("effect", x -> x.effect(), effect));
}
- public UntypedFunctionTypeNodeMatcher withParams(Matcher<UntypedParamTypesNode> params) {
+ public UntypedFunctionTypeNodeMatcher withParams(Matcher<UntypedFunctionTypeParamsNode> params) {
return with(has("params", x -> x.params(), params));
}
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 1a7f0611..db788968 100644
--- a/src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java
+++ b/src/test/java/org/shedlang/compiler/ast/untyped/UntypedNodeMatchers.java
@@ -135,6 +135,26 @@ public class UntypedNodeMatchers {
return UntypedFunctionTypeNodeMatcher.empty();
}
+ public static Matcher<UntypedFunctionTypeParamsNode> isUntypedFunctionTypeParamsNode(
+ Matcher<Iterable<? extends UntypedTypeLevelExpressionNode>> positional,
+ Matcher<Iterable<? extends UntypedFunctionTypeNamedParamNode>> named
+ ) {
+ return allOf(
+ has("positional", x -> x.positional(), positional),
+ has("named", x -> x.named(), named)
+ );
+ }
+
+ public static Matcher<UntypedFunctionTypeNamedParamNode> isUntypedFunctionTypeNamedParamNode(
+ String name,
+ Matcher<UntypedTypeLevelExpressionNode> type
+ ) {
+ return allOf(
+ has("name", x -> x.name(), equalTo(name)),
+ has("type", x -> x.type(), type)
+ );
+ }
+
public static Matcher<UntypedExpressionNode> isUntypedIfNode(
Matcher<Iterable<? extends UntypedConditionalBranchNode>> conditionalBranches,
Matcher<UntypedBlockNode> elseBody
@@ -200,16 +220,6 @@ public class UntypedNodeMatchers {
);
}
- public static Matcher<UntypedParamTypesNode> isUntypedParamTypesNode(
- Matcher<Iterable<? extends UntypedTypeLevelExpressionNode>> positional,
- Matcher<Iterable<? extends UntypedParamNode>> named
- ) {
- return allOf(
- has("positional", x -> x.positional(), positional),
- has("named", x -> x.named(), named)
- );
- }
-
public static Matcher<UntypedExpressionNode> isUntypedReferenceNode(String name) {
return instanceOf(
UntypedReferenceNode.class,
diff --git a/src/test/java/org/shedlang/compiler/parser/ParserFunctionTypeTests.java b/src/test/java/org/shedlang/compiler/parser/ParserFunctionTypeTests.java
index 76311a97..209220ad 100644
--- a/src/test/java/org/shedlang/compiler/parser/ParserFunctionTypeTests.java
+++ b/src/test/java/org/shedlang/compiler/parser/ParserFunctionTypeTests.java
@@ -19,7 +19,7 @@ public class ParserFunctionTypeTests {
assertThat(
node,
isUntypedFunctionTypeNode()
- .withParams(isUntypedParamTypesNode(
+ .withParams(isUntypedFunctionTypeParamsNode(
isSequence(),
isSequence()
))
@@ -37,7 +37,7 @@ public class ParserFunctionTypeTests {
assertThat(
node,
isUntypedFunctionTypeNode()
- .withParams(isUntypedParamTypesNode(
+ .withParams(isUntypedFunctionTypeParamsNode(
isSequence(
isUntypedTypeLevelReferenceNode("Int")
),
@@ -55,7 +55,7 @@ public class ParserFunctionTypeTests {
assertThat(
node,
isUntypedFunctionTypeNode()
- .withParams(isUntypedParamTypesNode(
+ .withParams(isUntypedFunctionTypeParamsNode(
isSequence(
isUntypedTypeLevelReferenceNode("Int"),
isUntypedTypeLevelReferenceNode("String"),
@@ -75,10 +75,10 @@ public class ParserFunctionTypeTests {
assertThat(
node,
isUntypedFunctionTypeNode()
- .withParams(isUntypedParamTypesNode(
+ .withParams(isUntypedFunctionTypeParamsNode(
isSequence(),
isSequence(
- isUntypedParamNode("a", isUntypedTypeLevelReferenceNode("Int"))
+ isUntypedFunctionTypeNamedParamNode("a", isUntypedTypeLevelReferenceNode("Int"))
)
))
);
@@ -93,12 +93,12 @@ public class ParserFunctionTypeTests {
assertThat(
node,
isUntypedFunctionTypeNode()
- .withParams(isUntypedParamTypesNode(
+ .withParams(isUntypedFunctionTypeParamsNode(
isSequence(),
isSequence(
- isUntypedParamNode("a", isUntypedTypeLevelReferenceNode("Int")),
- isUntypedParamNode("b", isUntypedTypeLevelReferenceNode("String")),
- isUntypedParamNode("c", isUntypedTypeLevelReferenceNode("Bool"))
+ isUntypedFunctionTypeNamedParamNode("a", isUntypedTypeLevelReferenceNode("Int")),
+ isUntypedFunctionTypeNamedParamNode("b", isUntypedTypeLevelReferenceNode("String")),
+ isUntypedFunctionTypeNamedParamNode("c", isUntypedTypeLevelReferenceNode("Bool"))
)
))
);
@@ -113,12 +113,12 @@ public class ParserFunctionTypeTests {
assertThat(
node,
isUntypedFunctionTypeNode()
- .withParams(isUntypedParamTypesNode(
+ .withParams(isUntypedFunctionTypeParamsNode(
isSequence(
isUntypedTypeLevelReferenceNode("Int")
),
isSequence(
- isUntypedParamNode("b", isUntypedTypeLevelReferenceNode("String"))
+ isUntypedFunctionTypeNamedParamNode("b", isUntypedTypeLevelReferenceNode("String"))
)
))
);
@@ -143,7 +143,7 @@ public class ParserFunctionTypeTests {
assertThat(
node,
isUntypedFunctionTypeNode()
- .withParams(isUntypedParamTypesNode(
+ .withParams(isUntypedFunctionTypeParamsNode(
isSequence(
isUntypedTypeLevelReferenceNode("Int")
),