diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-09-28 15:25:14 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-09-28 15:25:14 +0100 |
| commit | 7aa75e85fad99f25b7db8af932f12201e019d420 (patch) | |
| tree | 808e9ce8dbb17b5a204dbb73905e091d289817da /src/test/java | |
| parent | 8511c3f02f4afbc32856e2169f083b6197d430a5 (diff) | |
Extract FieldsInfo
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/patio/PatioCodeGenDefineStructTests.java | 9 | ||||
| -rw-r--r-- | src/test/java/org/shedlang/compiler/patio/PatioCodeGenFieldLoadTests.java | 8 | ||||
| -rw-r--r-- | src/test/java/org/shedlang/compiler/patio/PatioCodeGenNamespaceTests.java | 15 | ||||
| -rw-r--r-- | src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java | 2 | ||||
| -rw-r--r-- | src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFieldAccessTests.java | 4 | ||||
| -rw-r--r-- | src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java | 2 | ||||
| -rw-r--r-- | src/test/java/org/shedlang/compiler/typechecker/TypeCheckerStructDefinitionTests.java | 2 | ||||
| -rw-r--r-- | src/test/java/org/shedlang/compiler/types/FieldsInfoTests.java (renamed from src/test/java/org/shedlang/compiler/types/NamespaceTypeInfoTests.java) | 8 |
8 files changed, 23 insertions, 27 deletions
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenDefineStructTests.java b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenDefineStructTests.java index 1dba9fd5..50cd5267 100644 --- a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenDefineStructTests.java +++ b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenDefineStructTests.java @@ -5,7 +5,7 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.shedlang.compiler.stackir.instructions.Instructions; import org.shedlang.compiler.testing.snapshots.SnapshotResolver; import org.shedlang.compiler.testing.snapshots.Snapshotter; -import org.shedlang.compiler.typechecker.TypeCheckerContext; +import org.shedlang.compiler.typechecker.TypeInfos; import org.shedlang.compiler.types.NamespaceName; import org.shedlang.compiler.types.StructTypeInfo; import org.shedlang.compiler.types.Types; @@ -29,12 +29,11 @@ public class PatioCodeGenDefineStructTests { Instructions.defineStructField("isActive") ) ); - var typeInfos = TypeCheckerContext.EMPTY - .addStructTypeInfo(structType, new StructTypeInfo(P.orderedMap( + var typeInfos = TypeInfos.EMPTY + .addStructTypeInfo(structType, StructTypeInfo.fromFields(P.orderedMap( Map.entry("name", Types.STRING), Map.entry("isActive", Types.BOOL) - ))) - .toTypeInfos(); + ))); var context = PatioCodeGenContext.forTypeInfos(typeInfos); var result = PatioCodeGen.generateInstruction(instruction, context); diff --git a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenFieldLoadTests.java b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenFieldLoadTests.java index b43f2d1c..11773d3b 100644 --- a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenFieldLoadTests.java +++ b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenFieldLoadTests.java @@ -7,6 +7,7 @@ import org.shedlang.compiler.stackir.instructions.Instructions; import org.shedlang.compiler.testing.snapshots.SnapshotResolver; import org.shedlang.compiler.testing.snapshots.Snapshotter; import org.shedlang.compiler.typechecker.TypeCheckerContext; +import org.shedlang.compiler.typechecker.TypeInfos; import org.shedlang.compiler.types.NamespaceName; import org.shedlang.compiler.types.StructTypeInfo; import org.shedlang.compiler.types.Types; @@ -45,13 +46,12 @@ public class PatioCodeGenFieldLoadTests { var namespaceName = NamespaceName.of("Example", "Project"); var structType = Types.struct(namespaceName, "User"); var stackIrInstruction = Instructions.fieldLoad(structType, "id"); - var typeInfos = TypeCheckerContext.EMPTY - .addStructTypeInfo(structType, new StructTypeInfo(P.orderedMap( + var typeInfos = TypeInfos.EMPTY + .addStructTypeInfo(structType, StructTypeInfo.fromFields(P.orderedMap( Map.entry("name", Types.STRING), Map.entry("id", Types.INT), Map.entry("isActive", Types.BOOL) - ))) - .toTypeInfos(); + ))); var context = PatioCodeGenContext.forTypeInfos(typeInfos) .temporaryPush(new PatioLocalRef("a")) .temporaryPush(new PatioLocalRef("b")); diff --git a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenNamespaceTests.java b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenNamespaceTests.java index cf9b252f..5d192172 100644 --- a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenNamespaceTests.java +++ b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenNamespaceTests.java @@ -39,15 +39,12 @@ public class PatioCodeGenNamespaceTests { ); var instructions = List.<Instruction>of(instruction); var namespaceName = NamespaceName.of("An","Example"); - var context = PatioCodeGenContext.forTypeInfos(new TypeInfos( - P.map( - Map.entry(namespaceName, new NamespaceTypeInfo(P.orderedMap( - Map.entry("x", Types.INT), - Map.entry("y", Types.STRING) - ))) - ), - P.map() - )); + var typeInfos = TypeInfos.EMPTY + .addNamespaceTypeInfo(namespaceName, NamespaceTypeInfo.fromFields(P.orderedMap( + Map.entry("x", Types.INT), + Map.entry("y", Types.STRING) + ))); + var context = PatioCodeGenContext.forTypeInfos(typeInfos); var stackIrNamespace = new StackIrNamespace(namespaceName, instructions); var result = PatioCodeGen.generateNamespace(stackIrNamespace, context); diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java index cb43a057..9cfee363 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java @@ -353,7 +353,7 @@ public class TypeCheckerCallTests { .addNamedArg(Untyped.namedArg("name", Untyped.stringLiteral("Bob"))) .build(); var structType = Types.struct(NamespaceName.of("Example"), "User"); - var structTypeInfo = new StructTypeInfo(P.orderedMap( + var structTypeInfo = StructTypeInfo.fromFields(P.orderedMap( Map.entry("name", Types.STRING) )); var context = TypeCheckerContext.EMPTY diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFieldAccessTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFieldAccessTests.java index 77e6e867..62971de5 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFieldAccessTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFieldAccessTests.java @@ -25,7 +25,7 @@ public class TypeCheckerFieldAccessTests { "name" ); var structType = Types.struct(NamespaceName.of("Example"), "User"); - var structTypeInfo = new StructTypeInfo(P.orderedMap(Map.entry("name", Types.STRING))); + var structTypeInfo = StructTypeInfo.fromFields(P.orderedMap(Map.entry("name", Types.STRING))); var context = TypeCheckerContext.EMPTY .enterGlobal(P.map(Map.entry("user", structType))) .addStructTypeInfo(structType, structTypeInfo); @@ -64,7 +64,7 @@ public class TypeCheckerFieldAccessTests { "name" ); var structType = Types.struct(NamespaceName.of("Example"), "User"); - var structTypeInfo = new StructTypeInfo(P.orderedMap(Map.entry("username", Types.STRING))); + var structTypeInfo = StructTypeInfo.fromFields(P.orderedMap(Map.entry("username", Types.STRING))); var context = TypeCheckerContext.EMPTY .enterGlobal(P.map(Map.entry("user", structType))) .addStructTypeInfo(structType, structTypeInfo); diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java index 2c4f844d..7663a0aa 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java @@ -454,7 +454,7 @@ public class TypeCheckerNamespaceTests { assertThat( result.context().namespaceTypeInfo().get(namespaceName), - equalTo(new NamespaceTypeInfo(P.orderedMap( + equalTo(NamespaceTypeInfo.fromFields(P.orderedMap( Map.entry("f", new FunctionType(List.of(), List.of(), Effects.NONE, Types.UNIT)) ))) ); diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerStructDefinitionTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerStructDefinitionTests.java index 6af0a4f0..0e27584a 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerStructDefinitionTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerStructDefinitionTests.java @@ -117,7 +117,7 @@ public class TypeCheckerStructDefinitionTests { assertThat( typed.context().structTypeInfos().get(Types.struct(NAMESPACE_NAME, "ExampleStruct")), // TODO: builder for OrderedPMap - has("fields", x -> x.fields().entryStream().toList(), isSequence( + has("fields", x -> x.fields().stream().toList(), isSequence( equalTo(Map.entry("b", Types.BOOL)), equalTo(Map.entry("a", Types.INT)) )) diff --git a/src/test/java/org/shedlang/compiler/types/NamespaceTypeInfoTests.java b/src/test/java/org/shedlang/compiler/types/FieldsInfoTests.java index c22f312a..a8976376 100644 --- a/src/test/java/org/shedlang/compiler/types/NamespaceTypeInfoTests.java +++ b/src/test/java/org/shedlang/compiler/types/FieldsInfoTests.java @@ -9,10 +9,10 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.zwobble.precisely.AssertThat.assertThat; import static org.zwobble.precisely.Matchers.equalTo; -public class NamespaceTypeInfoTests { +public class FieldsInfoTests { @Test public void fieldCountReturnsNumberOfFields() { - var namespaceTypeInfo = new NamespaceTypeInfo(P.orderedMap( + var namespaceTypeInfo = new FieldsInfo(P.orderedMap( Map.entry("a", Types.INT), Map.entry("b", Types.STRING) )); @@ -24,7 +24,7 @@ public class NamespaceTypeInfoTests { @Test public void fieldIndexReturnsIndexOfFieldInMap() { - var namespaceTypeInfo = new NamespaceTypeInfo(P.orderedMap( + var namespaceTypeInfo = new FieldsInfo(P.orderedMap( Map.entry("a", Types.INT), Map.entry("b", Types.STRING) )); @@ -36,7 +36,7 @@ public class NamespaceTypeInfoTests { @Test public void whenFieldDoesNotExistThenFieldIndexThrowsError() { - var namespaceTypeInfo = new NamespaceTypeInfo(P.orderedMap( + var namespaceTypeInfo = new FieldsInfo(P.orderedMap( Map.entry("a", Types.INT), Map.entry("b", Types.STRING) )); |
