From c98a8de3d9cd79b37e8c69a668ebbf2a633423f3 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 29 Dec 2023 11:41:14 +0000 Subject: Store SumVariant in TypedWhenCaseNode --- src/test/java/org/shedlang/compiler/ast/typed/Typed.java | 2 +- .../java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java | 2 +- .../java/org/shedlang/compiler/shid/ShidCodeGenWhenTests.java | 5 +++-- .../org/shedlang/compiler/typechecker/TypeCheckerWhenTests.java | 8 ++++---- 4 files changed, 9 insertions(+), 8 deletions(-) (limited to 'src/test/java') 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 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 isTypedWhenCaseNode( - Matcher> caseType, + Matcher caseType, Matcher 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)) ) ) -- cgit v1.2.3