diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-10-29 20:58:08 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-10-29 20:58:08 +0000 |
| commit | 105f5cc96278def2f527d84665a3837b354dfd1c (patch) | |
| tree | 651f3e91ab895989885032f3f2b62e8903622eaa /src/test/java | |
| parent | 66f0aff9b147ff767c4af714036a95c04487af2b (diff) | |
Make param type optional in typed AST
Diffstat (limited to 'src/test/java')
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() )), |
