From d29c6f1a0c8d19f7a27c25034bc942ca778db7d8 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Mon, 18 May 2026 19:24:37 +0100 Subject: Collect mapping of variants to sum types --- .../typechecker/TypeCheckerSumDefinitionTests.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/test/java/org/zwobble') diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerSumDefinitionTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerSumDefinitionTests.java index 1d968d6..fdf88ee 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerSumDefinitionTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerSumDefinitionTests.java @@ -49,13 +49,15 @@ public class TypeCheckerSumDefinitionTests { DocComment.EMPTY, NullSource.INSTANCE ); - var context = TypeCheckerContextArb.namespaceContext(NamespaceName.of("a", "b")); - context.declare(rectangleType.name()); - context.define(rectangleType.name(), new TypeLevelValueType(rectangleType)); - context.declare(triangleType.name()); - context.define(triangleType.name(), new TypeLevelValueType(triangleType)); + var globalContext = TypeCheckerGlobalContext.initial(); + var namespaceContext = globalContext + .enterNamespace(NamespaceName.of("a", "b")); + namespaceContext.declare(rectangleType.name()); + namespaceContext.define(rectangleType.name(), new TypeLevelValueType(rectangleType)); + namespaceContext.declare(triangleType.name()); + namespaceContext.define(triangleType.name(), new TypeLevelValueType(triangleType)); - var typed = typeCheckNamespaceStatement(untyped, context); + var typed = typeCheckNamespaceStatement(untyped, namespaceContext); assertThat(typed, instanceOf( TypedSumDefinitionNode.class, @@ -76,5 +78,9 @@ public class TypeCheckerSumDefinitionTests { ) ) )); + var sumType = new SumType(NamespaceName.of("a", "b"), "X"); + var typesInfo = globalContext.toTypesInfo(); + assertThat(typesInfo.variantOf(rectangleType), isSequence(equalTo(sumType))); + assertThat(typesInfo.variantOf(triangleType), isSequence(equalTo(sumType))); } } -- cgit v1.2.3