summaryrefslogtreecommitdiff
path: root/src/test/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-05-18 19:24:37 +0100
committerMichael Williamson <mike@zwobble.org>2026-05-18 19:24:37 +0100
commitd29c6f1a0c8d19f7a27c25034bc942ca778db7d8 (patch)
tree2641c72a82d5efb26ee3cc563c073995b329977a /src/test/java/org
parent89fea0eb309e943a01d45aa5bcc2cb1901d3b1c7 (diff)
Collect mapping of variants to sum types
Diffstat (limited to 'src/test/java/org')
-rw-r--r--src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerSumDefinitionTests.java18
1 files changed, 12 insertions, 6 deletions
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)));
}
}