aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-09-28 15:25:14 +0100
committerMichael Williamson <mike@zwobble.org>2023-09-28 15:25:14 +0100
commit7aa75e85fad99f25b7db8af932f12201e019d420 (patch)
tree808e9ce8dbb17b5a204dbb73905e091d289817da /src/test/java
parent8511c3f02f4afbc32856e2169f083b6197d430a5 (diff)
Extract FieldsInfo
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioCodeGenDefineStructTests.java9
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioCodeGenFieldLoadTests.java8
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioCodeGenNamespaceTests.java15
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java2
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFieldAccessTests.java4
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java2
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerStructDefinitionTests.java2
-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)
));