aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-11-05 19:47:19 +0000
committerMichael Williamson <mike@zwobble.org>2023-11-05 19:47:19 +0000
commit5dbc2fc31b033cd1b9c51fea4326003a216bb686 (patch)
tree2ac9e39360e694eb2e8647e20811e0116e53b5ca /src/test/java
parent120b830cab1462d76761ee0d26cba7df783dc741 (diff)
Add builder for StructTypeInfo
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioCodeGenDefineStructTests.java17
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioCodeGenFieldLoadTests.java13
-rw-r--r--src/test/java/org/shedlang/compiler/patio/PatioCodeGenSwitchTests.java5
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java6
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFieldAccessTests.java8
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerWhenTests.java18
6 files changed, 40 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 932f626a..8552696f 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenDefineStructTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenDefineStructTests.java
@@ -9,11 +9,9 @@ import org.shedlang.compiler.typechecker.TypeInfos;
import org.shedlang.compiler.types.NamespaceName;
import org.shedlang.compiler.types.StructTypeInfo;
import org.shedlang.compiler.types.Types;
-import org.shedlang.compiler.util.P;
import java.io.IOException;
import java.util.List;
-import java.util.Map;
import static org.shedlang.compiler.patio.PatioTesting.serialize;
import static org.zwobble.precisely.AssertThat.assertThat;
@@ -32,10 +30,13 @@ public class PatioCodeGenDefineStructTests {
)
);
var typeInfos = TypeInfos.EMPTY
- .addStructTypeInfo(structType, StructTypeInfo.fromFields(P.orderedMap(
- Map.entry("name", Types.STRING),
- Map.entry("isActive", Types.BOOL)
- )));
+ .addStructTypeInfo(
+ structType,
+ StructTypeInfo.builder()
+ .addField("name", Types.STRING)
+ .addField("isActive", Types.BOOL)
+ .build()
+ );
var context = PatioCodeGenContext.forTypeInfos(typeInfos);
var result = PatioCodeGen.generateInstruction(instruction, context);
@@ -53,8 +54,8 @@ public class PatioCodeGenDefineStructTests {
var instruction1 = Instructions.defineStruct(structType1, List.of());
var instruction2 = Instructions.defineStruct(structType1, List.of());
var typeInfos = TypeInfos.EMPTY
- .addStructTypeInfo(structType1, StructTypeInfo.fromFields(P.orderedMap()))
- .addStructTypeInfo(structType2, StructTypeInfo.fromFields(P.orderedMap()));
+ .addStructTypeInfo(structType1, StructTypeInfo.builder().build())
+ .addStructTypeInfo(structType2, StructTypeInfo.builder().build());
var context = PatioCodeGenContext.forTypeInfos(typeInfos);
context = PatioCodeGen.generateInstruction(instruction1, context);
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenFieldLoadTests.java b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenFieldLoadTests.java
index 11773d3b..21349a0a 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenFieldLoadTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenFieldLoadTests.java
@@ -47,11 +47,14 @@ public class PatioCodeGenFieldLoadTests {
var structType = Types.struct(namespaceName, "User");
var stackIrInstruction = Instructions.fieldLoad(structType, "id");
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)
- )));
+ .addStructTypeInfo(
+ structType,
+ StructTypeInfo.builder()
+ .addField("name", Types.STRING)
+ .addField("id", Types.INT)
+ .addField("isActive", Types.BOOL)
+ .build()
+ );
var context = PatioCodeGenContext.forTypeInfos(typeInfos)
.temporaryPush(new PatioLocalRef("a"))
.temporaryPush(new PatioLocalRef("b"));
diff --git a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenSwitchTests.java b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenSwitchTests.java
index d42771c6..979743e3 100644
--- a/src/test/java/org/shedlang/compiler/patio/PatioCodeGenSwitchTests.java
+++ b/src/test/java/org/shedlang/compiler/patio/PatioCodeGenSwitchTests.java
@@ -10,7 +10,6 @@ import org.shedlang.compiler.typechecker.TypeInfos;
import org.shedlang.compiler.types.NamespaceName;
import org.shedlang.compiler.types.StructTypeInfo;
import org.shedlang.compiler.types.Types;
-import org.shedlang.compiler.util.P;
import java.io.IOException;
import java.util.List;
@@ -45,8 +44,8 @@ public class PatioCodeGenSwitchTests {
)
);
var typeInfos = TypeInfos.EMPTY
- .addStructTypeInfo(structType1, StructTypeInfo.fromFields(P.orderedMap()))
- .addStructTypeInfo(structType2, StructTypeInfo.fromFields(P.orderedMap()));
+ .addStructTypeInfo(structType1, StructTypeInfo.builder().build())
+ .addStructTypeInfo(structType2, StructTypeInfo.builder().build());
var context = PatioCodeGenContext.forTypeInfos(typeInfos)
.temporaryPush(new PatioLocalRef("other"))
.temporaryPush(new PatioLocalRef("condition"));
diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java
index ba18e7d6..50c74944 100644
--- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java
+++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java
@@ -354,9 +354,9 @@ public class TypeCheckerCallTests {
.addNamedArg(Untyped.namedArg("name", Untyped.stringLiteral("Bob")))
.build();
var structType = Types.struct(NamespaceName.of("Example"), "User");
- var structTypeInfo = StructTypeInfo.fromFields(P.orderedMap(
- Map.entry("name", Types.STRING)
- ));
+ var structTypeInfo = StructTypeInfo.builder()
+ .addField("name", Types.STRING)
+ .build();
var context = TypeCheckerContext.EMPTY
.enterGlobal(P.map(Map.entry("User", Types.metaType(structType))))
.addStructTypeInfo(structType, structTypeInfo);
diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFieldAccessTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFieldAccessTests.java
index 06089584..ffd9b7af 100644
--- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFieldAccessTests.java
+++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFieldAccessTests.java
@@ -26,7 +26,9 @@ public class TypeCheckerFieldAccessTests {
"name"
);
var structType = Types.struct(NamespaceName.of("Example"), "User");
- var structTypeInfo = StructTypeInfo.fromFields(P.orderedMap(Map.entry("name", Types.STRING)));
+ var structTypeInfo = StructTypeInfo.builder()
+ .addField("name", Types.STRING)
+ .build();
var context = TypeCheckerContext.EMPTY
.enterGlobal(P.map(Map.entry("user", structType)))
.addStructTypeInfo(structType, structTypeInfo);
@@ -91,7 +93,9 @@ public class TypeCheckerFieldAccessTests {
"name"
);
var structType = Types.struct(NamespaceName.of("Example"), "User");
- var structTypeInfo = StructTypeInfo.fromFields(P.orderedMap(Map.entry("username", Types.STRING)));
+ var structTypeInfo = StructTypeInfo.builder()
+ .addField("username", Types.STRING)
+ .build();
var context = TypeCheckerContext.EMPTY
.enterGlobal(P.map(Map.entry("user", structType)))
.addStructTypeInfo(structType, structTypeInfo);
diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerWhenTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerWhenTests.java
index fe817a7b..252d8471 100644
--- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerWhenTests.java
+++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerWhenTests.java
@@ -281,12 +281,18 @@ public class TypeCheckerWhenTests {
);
var context = TypeCheckerContext.EMPTY
.addSumTypeInfo(SUM_TYPE, new SumTypeInfo(P.orderedSet(VARIANT_TYPE_1, VARIANT_TYPE_2)))
- .addStructTypeInfo(VARIANT_TYPE_1, StructTypeInfo.fromFields(P.orderedMap(
- Map.entry("a", Types.STRING)
- )))
- .addStructTypeInfo(VARIANT_TYPE_2, StructTypeInfo.fromFields(P.orderedMap(
- Map.entry("b", Types.INT)
- )))
+ .addStructTypeInfo(
+ VARIANT_TYPE_1,
+ StructTypeInfo.builder()
+ .addField("a", Types.STRING)
+ .build()
+ )
+ .addStructTypeInfo(
+ VARIANT_TYPE_2,
+ StructTypeInfo.builder()
+ .addField("b", Types.INT)
+ .build()
+ )
.enterGlobal(P.map(
Map.entry("x", SUM_TYPE),
Map.entry(VARIANT_TYPE_1.name(), Types.metaType(VARIANT_TYPE_1)),