diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-11-05 19:47:19 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-11-05 19:47:19 +0000 |
| commit | 5dbc2fc31b033cd1b9c51fea4326003a216bb686 (patch) | |
| tree | 2ac9e39360e694eb2e8647e20811e0116e53b5ca /src/test/java | |
| parent | 120b830cab1462d76761ee0d26cba7df783dc741 (diff) | |
Add builder for StructTypeInfo
Diffstat (limited to 'src/test/java')
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)), |
