aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-12-29 11:41:14 +0000
committerMichael Williamson <mike@zwobble.org>2023-12-29 11:41:14 +0000
commitc98a8de3d9cd79b37e8c69a668ebbf2a633423f3 (patch)
tree59f2fe38cd3146cb3d733b865d1bef40afac9814 /src/test/java
parent06fc58bacedc66aa5e142fec7df576e41ecab388 (diff)
Store SumVariant in TypedWhenCaseNode
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/ast/typed/Typed.java2
-rw-r--r--src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java2
-rw-r--r--src/test/java/org/shedlang/compiler/shid/ShidCodeGenWhenTests.java5
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerWhenTests.java8
4 files changed, 9 insertions, 8 deletions
diff --git a/src/test/java/org/shedlang/compiler/ast/typed/Typed.java b/src/test/java/org/shedlang/compiler/ast/typed/Typed.java
index 6ef8df43..b501007e 100644
--- a/src/test/java/org/shedlang/compiler/ast/typed/Typed.java
+++ b/src/test/java/org/shedlang/compiler/ast/typed/Typed.java
@@ -296,7 +296,7 @@ public class Typed {
}
public static TypedWhenCaseNode whenCase(
- TypedTypeLevelExpressionNode<StructType> caseType,
+ SumVariant caseType,
TypedBlockNode body
) {
return new TypedWhenCaseNode(caseType, body, Sources.NULL);
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 52813dd4..f01c82c1 100644
--- a/src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java
+++ b/src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java
@@ -421,7 +421,7 @@ public class TypedNodeMatchers {
}
public static Matcher<TypedWhenCaseNode> isTypedWhenCaseNode(
- Matcher<TypedTypeLevelExpressionNode<?>> caseType,
+ Matcher<SumVariant> caseType,
Matcher<TypedBlockNode> body
) {
return allOf(
diff --git a/src/test/java/org/shedlang/compiler/shid/ShidCodeGenWhenTests.java b/src/test/java/org/shedlang/compiler/shid/ShidCodeGenWhenTests.java
index b7529685..e9c243f6 100644
--- a/src/test/java/org/shedlang/compiler/shid/ShidCodeGenWhenTests.java
+++ b/src/test/java/org/shedlang/compiler/shid/ShidCodeGenWhenTests.java
@@ -3,6 +3,7 @@ package org.shedlang.compiler.shid;
import org.junit.jupiter.api.Test;
import org.shedlang.compiler.ast.typed.Typed;
import org.shedlang.compiler.types.NamespaceName;
+import org.shedlang.compiler.types.SumVariant;
import org.shedlang.compiler.types.Types;
import java.util.List;
@@ -20,13 +21,13 @@ public class ShidCodeGenWhenTests {
Typed.reference("x"),
List.of(
Typed.whenCase(
- Typed.typeLevelReference("A", Types.struct(NAMESPACE_NAME, "A")),
+ SumVariant.struct(Types.struct(NAMESPACE_NAME, "A")),
Typed.block(List.of(
Typed.blockReturn(Typed.stringLiteral("a"))
))
),
Typed.whenCase(
- Typed.typeLevelReference("B", Types.struct(NAMESPACE_NAME, "B")),
+ SumVariant.struct(Types.struct(NAMESPACE_NAME, "B")),
Typed.block(List.of(
Typed.blockReturn(Typed.stringLiteral("b"))
))
diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerWhenTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerWhenTests.java
index a3fc4bab..d0ea43cb 100644
--- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerWhenTests.java
+++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerWhenTests.java
@@ -185,13 +185,13 @@ public class TypeCheckerWhenTests {
isTypedReferenceNode("x", SUM_TYPE),
isSequence(
isTypedWhenCaseNode(
- isTypedTypeLevelReferenceNode("Variant1", VARIANT_TYPE_1),
+ equalTo(SumVariant.struct(VARIANT_TYPE_1)),
isTypedBlockNode(isSequence(
isTypedBlockReturnNode(isTypedStringLiteralNode("a"))
))
),
isTypedWhenCaseNode(
- isTypedTypeLevelReferenceNode("Variant2", VARIANT_TYPE_2),
+ equalTo(SumVariant.struct(VARIANT_TYPE_2)),
isTypedBlockNode(isSequence(
isTypedBlockReturnNode(isTypedStringLiteralNode("b"))
))
@@ -324,11 +324,11 @@ public class TypeCheckerWhenTests {
isTypedReferenceNode("x", SUM_TYPE),
isSequence(
isTypedWhenCaseNode(
- isTypedTypeLevelReferenceNode("Variant1", VARIANT_TYPE_1),
+ equalTo(SumVariant.struct(VARIANT_TYPE_1)),
has("type", x -> x.type(), equalTo(Types.STRING))
),
isTypedWhenCaseNode(
- isTypedTypeLevelReferenceNode("Variant2", VARIANT_TYPE_2),
+ equalTo(SumVariant.struct(VARIANT_TYPE_2)),
has("type", x -> x.type(), equalTo(Types.INT))
)
)