diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-08-09 21:31:35 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-08-09 21:31:35 +0100 |
| commit | 98962d6c17fd91be269e6c8a766977707422cbb4 (patch) | |
| tree | dc2e43dd2c0f8a5ff9990afc7579ff176225f17a /src/test | |
| parent | cc0f7190d1254ec89354cea8b2ed0aaecbb3b391 (diff) | |
Introduce ConstructedStructType
Diffstat (limited to 'src/test')
5 files changed, 34 insertions, 34 deletions
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/analysis/ArbitraryValueAnalysisTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/analysis/ArbitraryValueAnalysisTests.java index b802386..7238a3d 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/analysis/ArbitraryValueAnalysisTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/analysis/ArbitraryValueAnalysisTests.java @@ -34,7 +34,7 @@ public class ArbitraryValueAnalysisTests { @Test public void whenTypeIsInfiniteThenErrorIsThrown() { var sumType = new SumType(NamespaceName.of(), "X"); - var variantType = new StructType(NamespaceName.of(), "Y"); + var variantType = new SimpleStructType(NamespaceName.of(), "Y"); var typesInfo = TypesInfoInMemory.empty(); typesInfo.defineSumType( sumType, @@ -59,8 +59,8 @@ public class ArbitraryValueAnalysisTests { @Test public void firstNonRecursivelyConstructibleVariantIsChosen() { var sumType = new SumType(NamespaceName.of(), "X"); - var recursiveVariantType = new StructType(NamespaceName.of(), "Y"); - var nonRecursiveVariantType = new StructType(NamespaceName.of(), "Z"); + var recursiveVariantType = new SimpleStructType(NamespaceName.of(), "Y"); + var nonRecursiveVariantType = new SimpleStructType(NamespaceName.of(), "Z"); var typesInfo = TypesInfoInMemory.empty(); typesInfo.defineSumType( sumType, @@ -86,8 +86,8 @@ public class ArbitraryValueAnalysisTests { @Test public void boxIsRecursivelyConstructibleIffInnerTypeIsRecursivelyConstructible() { var sumType = new SumType(NamespaceName.of(), "X"); - var recursiveVariantType = new StructType(NamespaceName.of(), "Y"); - var nonRecursiveVariantType = new StructType(NamespaceName.of(), "Z"); + var recursiveVariantType = new SimpleStructType(NamespaceName.of(), "Y"); + var nonRecursiveVariantType = new SimpleStructType(NamespaceName.of(), "Z"); var typesInfo = TypesInfoInMemory.empty(); typesInfo.defineSumType( sumType, @@ -113,8 +113,8 @@ public class ArbitraryValueAnalysisTests { @Test public void listIsAlwaysNonRecursivelyConstructible() { var sumType = new SumType(NamespaceName.of(), "X"); - var recursiveVariantType = new StructType(NamespaceName.of(), "Y"); - var nonRecursiveVariantType = new StructType(NamespaceName.of(), "Z"); + var recursiveVariantType = new SimpleStructType(NamespaceName.of(), "Y"); + var nonRecursiveVariantType = new SimpleStructType(NamespaceName.of(), "Z"); var typesInfo = TypesInfoInMemory.empty(); typesInfo.defineSumType( sumType, @@ -140,8 +140,8 @@ public class ArbitraryValueAnalysisTests { @Test public void optionIsAlwaysNonRecursivelyConstructible() { var sumType = new SumType(NamespaceName.of(), "X"); - var recursiveVariantType = new StructType(NamespaceName.of(), "Y"); - var nonRecursiveVariantType = new StructType(NamespaceName.of(), "Z"); + var recursiveVariantType = new SimpleStructType(NamespaceName.of(), "Y"); + var nonRecursiveVariantType = new SimpleStructType(NamespaceName.of(), "Z"); var typesInfo = TypesInfoInMemory.empty(); typesInfo.defineSumType( sumType, @@ -167,8 +167,8 @@ public class ArbitraryValueAnalysisTests { @Test public void sharedIsRecursivelyConstructibleIffInnerTypeIsRecursivelyConstructible() { var sumType = new SumType(NamespaceName.of(), "X"); - var recursiveVariantType = new StructType(NamespaceName.of(), "Y"); - var nonRecursiveVariantType = new StructType(NamespaceName.of(), "Z"); + var recursiveVariantType = new SimpleStructType(NamespaceName.of(), "Y"); + var nonRecursiveVariantType = new SimpleStructType(NamespaceName.of(), "Z"); var typesInfo = TypesInfoInMemory.empty(); typesInfo.defineSumType( sumType, diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerNamespaceTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerNamespaceTests.java index 95ad671..9545bce 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerNamespaceTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerNamespaceTests.java @@ -41,14 +41,14 @@ public class TypeCheckerNamespaceTests { has( "type", TypedStructDefinitionNode::type, - equalTo(new StructType(NamespaceName.of("a", "b"), "X")) + equalTo(new SimpleStructType(NamespaceName.of("a", "b"), "X")) ) ) )) ))); assertThat( context.namespaceFields(NamespaceName.of("a", "b")).orElseThrow().fieldType("X").orElseThrow(), - isMetaType(new StructType(NamespaceName.of("a", "b"), "X")) + isMetaType(new SimpleStructType(NamespaceName.of("a", "b"), "X")) ); } @@ -93,13 +93,13 @@ public class TypeCheckerNamespaceTests { has( "type", TypedStructDefinitionNode::type, - equalTo(new StructType(NamespaceName.of("a", "b"), "X")) + equalTo(new SimpleStructType(NamespaceName.of("a", "b"), "X")) ) ) )) ))); assertThat( - context.toTypesInfo().fieldsOf(new StructType(NamespaceName.of("a", "b"), "X")), + context.toTypesInfo().fieldsOf(new SimpleStructType(NamespaceName.of("a", "b"), "X")), isOptionalOf(isSequence( isField("y", new SimpleNativeType(NamespaceName.of("a", "c"), "Y")) )) diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerStructDefinitionTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerStructDefinitionTests.java index ceb7a9b..905ff32 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerStructDefinitionTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerStructDefinitionTests.java @@ -11,7 +11,7 @@ import org.zwobble.hobgoblin.compiler.ast.untyped.UntypedStructDefinitionNode; import org.zwobble.hobgoblin.compiler.ast.untyped.UntypedStructFieldDefinitionNode; import org.zwobble.hobgoblin.compiler.types.NamespaceName; import org.zwobble.hobgoblin.compiler.types.SimpleNativeType; -import org.zwobble.hobgoblin.compiler.types.StructType; +import org.zwobble.hobgoblin.compiler.types.SimpleStructType; import java.util.List; import java.util.Optional; @@ -36,7 +36,7 @@ public class TypeCheckerStructDefinitionTests { has( "type", TypedStructDefinitionNode::type, - equalTo(new StructType(NamespaceName.of("a", "b"), "X")) + equalTo(new SimpleStructType(NamespaceName.of("a", "b"), "X")) ) )); } @@ -87,7 +87,7 @@ public class TypeCheckerStructDefinitionTests { )); var typesInfo = globalContext.toTypesInfo(); assertThat( - typesInfo.fieldsOf(new StructType(namespaceName, "X")), + typesInfo.fieldsOf(new SimpleStructType(namespaceName, "X")), isOptionalOf(isSequence( isField("a", int32Type), isField("b", int64Type) @@ -121,7 +121,7 @@ public class TypeCheckerStructDefinitionTests { )); var typesInfo = globalContext.toTypesInfo(); assertThat( - typesInfo.fieldsOf(new StructType(namespaceName, "X")), + typesInfo.fieldsOf(new SimpleStructType(namespaceName, "X")), isOptionalEmpty() ); } @@ -168,7 +168,7 @@ public class TypeCheckerStructDefinitionTests { has("type", TypedStructFieldDefinitionNode::type, has( "value", TypedTypeLevelExpressionNode::value, - equalTo(new StructType(namespaceName, "Y")) + equalTo(new SimpleStructType(namespaceName, "Y")) )) ) )) diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerSubtypingTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerSubtypingTests.java index f22bc3e..0790561 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerSubtypingTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerSubtypingTests.java @@ -33,8 +33,8 @@ public class TypeCheckerSubtypingTests { @Test public void variantIsSubtypeOfSumType() { - var variantType1 = new StructType(NamespaceName.of(), "Rectangle"); - var variantType2 = new StructType(NamespaceName.of(), "Circle"); + var variantType1 = new SimpleStructType(NamespaceName.of(), "Rectangle"); + var variantType2 = new SimpleStructType(NamespaceName.of(), "Circle"); var sumType = new SumType(NamespaceName.of(), "Shape"); var typesInfo = TypesInfoInMemory.empty(); typesInfo.defineSumType( @@ -56,8 +56,8 @@ public class TypeCheckerSubtypingTests { public void variantIsNotSubtypeOfUnrelatedSumType() { var typesInfo = TypesInfoInMemory.empty(); - var variantType1 = new StructType(NamespaceName.of(), "Rectangle"); - var variantType2 = new StructType(NamespaceName.of(), "Circle"); + var variantType1 = new SimpleStructType(NamespaceName.of(), "Rectangle"); + var variantType2 = new SimpleStructType(NamespaceName.of(), "Circle"); var sumType = new SumType(NamespaceName.of(), "Shape"); typesInfo.defineSumType( sumType, @@ -70,7 +70,7 @@ public class TypeCheckerSubtypingTests { ); var otherSumType = new SumType(NamespaceName.of(), "Shape3D"); - var otherVariantType = new StructType(NamespaceName.of(), "Cube"); + var otherVariantType = new SimpleStructType(NamespaceName.of(), "Cube"); typesInfo.defineSumType( otherSumType, List.of(new SumVariant(0, otherVariantType, otherVariantType)), 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 be9790a..693f2fa 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerSumDefinitionTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerSumDefinitionTests.java @@ -44,8 +44,8 @@ public class TypeCheckerSumDefinitionTests { @Test public void variantsAreTypeChecked() { - var rectangleType = new StructType(NamespaceName.of("a", "b"), "Rectangle"); - var triangleType = new StructType(NamespaceName.of("a", "b"), "Triangle"); + var rectangleType = new SimpleStructType(NamespaceName.of("a", "b"), "Rectangle"); + var triangleType = new SimpleStructType(NamespaceName.of("a", "b"), "Triangle"); var untyped = UntypedSumDefinitionNode.arbitrary() .withName("X") .withVariants(List.of( @@ -95,8 +95,8 @@ public class TypeCheckerSumDefinitionTests { @Test public void variantCanHaveBoxType() { - var rectangleType = new StructType(NamespaceName.of("a", "b"), "Rectangle"); - var triangleType = new StructType(NamespaceName.of("a", "b"), "Triangle"); + var rectangleType = new SimpleStructType(NamespaceName.of("a", "b"), "Rectangle"); + var triangleType = new SimpleStructType(NamespaceName.of("a", "b"), "Triangle"); var untyped = UntypedSumDefinitionNode.arbitrary() .withName("X") .withVariants(List.of( @@ -184,7 +184,7 @@ public class TypeCheckerSumDefinitionTests { .build() )) .build(); - var variantType = new StructType(NamespaceName.of("other"), "Variant"); + var variantType = new SimpleStructType(NamespaceName.of("other"), "Variant"); var globalContext = TypeCheckerGlobalContext.initial(); globalContext.addNativeTypeConstructor(NativeTypes.BOX); var namespaceContext = globalContext @@ -273,7 +273,7 @@ public class TypeCheckerSumDefinitionTests { var namespaceName = NamespaceName.of("a", "b"); var namespaceContext = globalContext .enterNamespace(namespaceName); - var variantType = new StructType(namespaceName, "Square"); + var variantType = new SimpleStructType(namespaceName, "Square"); namespaceContext.declare("Square", new TypeLevelValueType(variantType), NullSource.INSTANCE); namespaceContext.defineStructType(variantType, Optional.of(List.of())); @@ -310,7 +310,7 @@ public class TypeCheckerSumDefinitionTests { var namespaceName = NamespaceName.of("a", "b"); var namespaceContext = globalContext .enterNamespace(namespaceName); - var variantType = new StructType(namespaceName, "Square"); + var variantType = new SimpleStructType(namespaceName, "Square"); namespaceContext.declare("Square", new TypeLevelValueType(variantType), NullSource.INSTANCE); namespaceContext.defineStructType(variantType, Optional.of(List.of(new Field("area", int64Type, NullSource.INSTANCE)))); @@ -346,7 +346,7 @@ public class TypeCheckerSumDefinitionTests { var namespaceName = NamespaceName.of("a", "b"); var namespaceContext = globalContext .enterNamespace(namespaceName); - var variantType = new StructType(namespaceName, "Square"); + var variantType = new SimpleStructType(namespaceName, "Square"); namespaceContext.declare("Square", new TypeLevelValueType(variantType), NullSource.INSTANCE); namespaceContext.defineStructType(variantType, Optional.of(List.of())); @@ -368,7 +368,7 @@ public class TypeCheckerSumDefinitionTests { var namespaceContext = globalContext .enterNamespace(namespaceName); var sumType = new SumType(namespaceName, "Shape"); - var variantType = new StructType(namespaceName, "Square"); + var variantType = new SimpleStructType(namespaceName, "Square"); namespaceContext.declare("Sum", new TypeLevelValueType(sumType), NullSource.INSTANCE); namespaceContext.defineSumType( sumType, |
