aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-10-29 20:58:08 +0000
committerMichael Williamson <mike@zwobble.org>2023-10-29 20:58:08 +0000
commit105f5cc96278def2f527d84665a3837b354dfd1c (patch)
tree651f3e91ab895989885032f3f2b62e8903622eaa /src/test/java
parent66f0aff9b147ff767c4af714036a95c04487af2b (diff)
Make param type optional in typed AST
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java3
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionSignatureTests.java14
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java8
3 files changed, 18 insertions, 7 deletions
diff --git a/src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java b/src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java
index 8a438233..0d60b280 100644
--- a/src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java
+++ b/src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java
@@ -4,6 +4,7 @@ import org.shedlang.compiler.types.*;
import org.zwobble.precisely.Matcher;
import java.math.BigInteger;
+import java.util.Optional;
import static org.zwobble.precisely.Matchers.*;
@@ -218,7 +219,7 @@ public class TypedNodeMatchers {
public static Matcher<TypedParamNode> isTypedParamNode(
String name,
- Matcher<TypedTypeLevelExpressionNode<?>> type
+ Matcher<Optional<? extends TypedTypeLevelExpressionNode<?>>> type
) {
return allOf(
has("name", x -> x.name(), equalTo(name)),
diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionSignatureTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionSignatureTests.java
index 580a24aa..3ffc8bc6 100644
--- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionSignatureTests.java
+++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionSignatureTests.java
@@ -55,8 +55,18 @@ public class TypeCheckerFunctionSignatureTests {
isTypedFunctionSignatureNode()
.withParams(
isTypedParamsNode(
- isSequence(isTypedParamNode("x", isTypedTypeLevelReferenceNode("String", Types.STRING))),
- isSequence(isTypedParamNode("y", isTypedTypeLevelReferenceNode("Int", Types.INT)))
+ isSequence(
+ isTypedParamNode(
+ "x",
+ isOptionalOf(isTypedTypeLevelReferenceNode("String", Types.STRING))
+ )
+ ),
+ isSequence(
+ isTypedParamNode(
+ "y",
+ isOptionalOf(isTypedTypeLevelReferenceNode("Int", Types.INT))
+ )
+ )
)
)
);
diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java
index 77a4432b..948fdd3b 100644
--- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java
+++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java
@@ -335,10 +335,10 @@ public class TypeCheckerNamespaceTests {
.withParams(isTypedParamsNode(
isSequence(isTypedParamNode(
"user",
- isTypedTypeLevelReferenceNode(
+ isOptionalOf(isTypedTypeLevelReferenceNode(
"User",
isStructType(NamespaceName.of("Example", "Project"), "User")
- )
+ ))
)),
isSequence()
))
@@ -372,10 +372,10 @@ public class TypeCheckerNamespaceTests {
.withParams(isTypedParamsNode(
isSequence(isTypedParamNode(
"user",
- isTypedTypeLevelReferenceNode(
+ isOptionalOf(isTypedTypeLevelReferenceNode(
"User",
isStructType(NamespaceName.of("Example", "Project"), "User")
- )
+ ))
)),
isSequence()
)),