diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-07-31 23:01:07 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-07-31 23:01:07 +0100 |
| commit | ab0e1c0e31158a090630070472723c34deedc83a (patch) | |
| tree | b39be95df04369d41ebb2886b0e0c7ab480e4cbf /src/test/java | |
| parent | fa5df9169c64e6b7abaf6ec7825c4788d7638bc4 (diff) | |
Add notion of VariableType
Diffstat (limited to 'src/test/java')
10 files changed, 68 insertions, 68 deletions
diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerAssignTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerAssignTests.java index 1f5d82ee..e3c819f5 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerAssignTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerAssignTests.java @@ -24,7 +24,7 @@ public class TypeCheckerAssignTests { var untyped = Untyped.assign(Untyped.targetVariable("x"), Untyped.stringLiteral("hello")); var context = TypeCheckerContext.EMPTY .enterNamespace(P.map( - Map.entry("x", Variable.defined(Types.STRING)) + Map.entry("x", Variable.defined(Types.STRING, VariableType.VAR)) )); var typed = typeCheckFunctionStatement(untyped, context); @@ -40,7 +40,7 @@ public class TypeCheckerAssignTests { var untyped = Untyped.assign(Untyped.targetVariable("x"), Untyped.stringLiteral("hello")); var context = TypeCheckerContext.EMPTY .enterNamespace(P.map( - Map.entry("x", Variable.defined(Types.INT)) + Map.entry("x", Variable.defined(Types.INT, VariableType.VAR)) )); var error = assertThrows( diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java index 59576069..bb3e3cb6 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java @@ -30,7 +30,7 @@ public class TypeCheckerCallTests { .withReturnType(Types.STRING) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("f", functionType))); + .enterGlobal(P.map(Map.entry("f", functionType))); var typed = TypeChecker.typeCheckExpression(untyped, context); @@ -51,7 +51,7 @@ public class TypeCheckerCallTests { List.of() ); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("f", Types.STRING))); + .enterGlobal(P.map(Map.entry("f", Types.STRING))); var error = assertThrows( UnexpectedTypeError.class, @@ -76,7 +76,7 @@ public class TypeCheckerCallTests { .addPositionalParam(Types.INT) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("f", functionType))); + .enterGlobal(P.map(Map.entry("f", functionType))); var typed = TypeChecker.typeCheckExpression(untyped, context); @@ -105,7 +105,7 @@ public class TypeCheckerCallTests { .addNamedParam("y", Types.INT) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("f", functionType))); + .enterGlobal(P.map(Map.entry("f", functionType))); var typed = TypeChecker.typeCheckExpression(untyped, context); @@ -131,7 +131,7 @@ public class TypeCheckerCallTests { .addPositionalParam(Types.INT) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("f", functionType))); + .enterGlobal(P.map(Map.entry("f", functionType))); var error = assertThrows( UnexpectedTypeError.class, @@ -155,7 +155,7 @@ public class TypeCheckerCallTests { .addNamedParam("x", Types.INT) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("f", functionType))); + .enterGlobal(P.map(Map.entry("f", functionType))); var error = assertThrows( UnexpectedTypeError.class, @@ -177,7 +177,7 @@ public class TypeCheckerCallTests { var functionType = FunctionType.builder() .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("f", functionType))); + .enterGlobal(P.map(Map.entry("f", functionType))); var error = assertThrows( WrongNumberOfPositionalArgsError.class, @@ -199,7 +199,7 @@ public class TypeCheckerCallTests { .addNamedParam("x", Types.STRING) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("f", functionType))); + .enterGlobal(P.map(Map.entry("f", functionType))); var error = assertThrows( MissingNamedArgError.class, @@ -221,7 +221,7 @@ public class TypeCheckerCallTests { var functionType = FunctionType.builder() .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("f", functionType))); + .enterGlobal(P.map(Map.entry("f", functionType))); var error = assertThrows( UnexpectedNamedArgError.class, @@ -245,7 +245,7 @@ public class TypeCheckerCallTests { .addNamedParam("x", Types.STRING) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("f", functionType))); + .enterGlobal(P.map(Map.entry("f", functionType))); var error = assertThrows( CannotPassNamedArgTwiceError.class, @@ -266,7 +266,7 @@ public class TypeCheckerCallTests { .withReturnType(Types.UNIT) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("f", functionType))); + .enterGlobal(P.map(Map.entry("f", functionType))); var error = assertThrows( CallIsMissingEffectsError.class, @@ -287,7 +287,7 @@ public class TypeCheckerCallTests { .withReturnType(Types.UNIT) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("f", functionType))); + .enterGlobal(P.map(Map.entry("f", functionType))); assertThrows( FunctionHasNoEffectsError.class, @@ -307,7 +307,7 @@ public class TypeCheckerCallTests { .build(); var context = TypeCheckerContext.EMPTY .enterFunction( - P.map(Map.entry("f", Variable.defined(functionType))), + P.map(Map.entry("f", Variable.defined(functionType, VariableType.CONSTANT))), Effects.IO, Types.UNIT ); @@ -334,7 +334,7 @@ public class TypeCheckerCallTests { .build(); var context = TypeCheckerContext.EMPTY .enterFunction( - P.map(Map.entry("f", Variable.defined(functionType))), + P.map(Map.entry("f", Variable.defined(functionType, VariableType.CONSTANT))), Effects.NONE, Types.UNIT ); diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerContextTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerContextTests.java index 3c622348..c3791df8 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerContextTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerContextTests.java @@ -19,21 +19,21 @@ public class TypeCheckerContextTests { public void givenVariableIsUndefinedWhenVariableIsDefinedThenVariableHasTypeSet() { var context = TypeCheckerContext.EMPTY .enterNamespace(P.map( - Map.entry("x", Variable.undefined()), - Map.entry("y", Variable.undefined()) + Map.entry("x", Variable.undefined(VariableType.VAL)), + Map.entry("y", Variable.undefined(VariableType.VAL)) )); context = context.define("x", Types.STRING, Sources.NULL); var result = context.runtimeLookup("x", Sources.NULL); - assertThat(result.value(), isOptionalOf(equalTo(Variable.defined(Types.STRING)))); + assertThat(result.value(), isOptionalOf(equalTo(Variable.defined(Types.STRING, VariableType.VAL)))); } @Test public void givenVariableIsUnknownWhenVariableIsDefinedThenErrorIsThrown() { var context = TypeCheckerContext.EMPTY .enterNamespace(P.map( - Map.entry("y", Variable.undefined()) + Map.entry("y", Variable.undefined(VariableType.VAL)) )); var error = assertThrows( @@ -48,7 +48,7 @@ public class TypeCheckerContextTests { public void givenVariableIsDefinedWhenVariableIsDefinedThenErrorIsThrown() { var context = TypeCheckerContext.EMPTY .enterNamespace(P.map( - Map.entry("x", Variable.defined(Types.STRING)) + Map.entry("x", Variable.defined(Types.STRING, VariableType.VAL)) )); var error = assertThrows( @@ -63,7 +63,7 @@ public class TypeCheckerContextTests { public void givenVariableIsBoundInOuterScopeWhenVariableIsDefinedThenErrorIsThrown() { var context = TypeCheckerContext.EMPTY .enterNamespace(P.map( - Map.entry("x", Variable.undefined()) + Map.entry("x", Variable.undefined(VariableType.VAL)) )) .enterNamespace(P.map()); @@ -79,23 +79,23 @@ public class TypeCheckerContextTests { public void definingVariableOnlyAffectsTopMostLexicalContext() { var context = TypeCheckerContext.EMPTY .enterNamespace(P.map( - Map.entry("x", Variable.undefined()), - Map.entry("y", Variable.undefined()) + Map.entry("x", Variable.undefined(VariableType.VAL)), + Map.entry("y", Variable.undefined(VariableType.VAL)) )); context = context.enterBlock(P.map( - Map.entry("x", Variable.undefined()) + Map.entry("x", Variable.undefined(VariableType.VAL)) )); context = context.define("x", Types.STRING, Sources.NULL); assertThat( context.runtimeLookup("x", Sources.NULL).value(), - isOptionalOf(equalTo(Variable.defined(Types.STRING))) + isOptionalOf(equalTo(Variable.defined(Types.STRING, VariableType.VAL))) ); context = context.exit(); assertThat( context.runtimeLookup("x", Sources.NULL).value(), - isOptionalOf(equalTo(Variable.undefined())) + isOptionalOf(equalTo(Variable.undefined(VariableType.VAL))) ); } @@ -104,7 +104,7 @@ public class TypeCheckerContextTests { var context = TypeCheckerContext.EMPTY .enterBlock(P.map()) .enterBlock(P.map( - Map.entry("x", Variable.undefined()) + Map.entry("x", Variable.undefined(VariableType.VAL)) )) .enterBlock(P.map()) .enterBlock(P.map()); diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java index 6e77563f..7a81b5ac 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java @@ -29,7 +29,7 @@ public class TypeCheckerFunctionDefinitionTests { .withReturnType(Untyped.typeLevelReference("Unit")) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); + .enterGlobal(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); var typed = typeCheckNamespaceStatement(untyped, context); @@ -53,7 +53,7 @@ public class TypeCheckerFunctionDefinitionTests { .withReturnType(Untyped.typeLevelReference("Unit")) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("Int", Types.metaType(Types.INT)), Map.entry("String", Types.metaType(Types.STRING)), Map.entry("Unit", Types.metaType(Types.UNIT)) @@ -86,7 +86,7 @@ public class TypeCheckerFunctionDefinitionTests { .withReturnType(Untyped.typeLevelReference("Unit")) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("Io", Types.effectType(Effects.IO)), Map.entry("Unit", Types.metaType(Types.UNIT)) )); @@ -107,7 +107,7 @@ public class TypeCheckerFunctionDefinitionTests { .addStatement(Untyped.expressionStatement(Untyped.stringLiteral("hello"))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); + .enterGlobal(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); var typed = typeCheckNamespaceStatement(untyped, context); @@ -128,7 +128,7 @@ public class TypeCheckerFunctionDefinitionTests { .addStatement(Untyped.expressionStatement(Untyped.reference("x"))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("String", Types.metaType(Types.STRING)), Map.entry("Unit", Types.metaType(Types.UNIT)) )); @@ -152,7 +152,7 @@ public class TypeCheckerFunctionDefinitionTests { .addStatement(Untyped.expressionStatement(Untyped.reference("x"))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("String", Types.metaType(Types.STRING)), Map.entry("Unit", Types.metaType(Types.UNIT)) )); @@ -186,7 +186,7 @@ public class TypeCheckerFunctionDefinitionTests { .withReturnType(Types.UNIT) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("f", functionType), Map.entry("Io", Types.effectType(Effects.IO)), Map.entry("Unit", Types.metaType(Types.UNIT)) @@ -210,7 +210,7 @@ public class TypeCheckerFunctionDefinitionTests { .addStatement(Untyped.functionReturn(Untyped.intLiteral(42))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("String", Types.metaType(Types.STRING)) )); @@ -229,7 +229,7 @@ public class TypeCheckerFunctionDefinitionTests { .withReturnType(Untyped.typeLevelReference("Unit")) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("Unit", Types.metaType(Types.UNIT)) )); @@ -242,7 +242,7 @@ public class TypeCheckerFunctionDefinitionTests { .withReturnType(Untyped.typeLevelReference("String")) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("String", Types.metaType(Types.STRING)) )); @@ -262,7 +262,7 @@ public class TypeCheckerFunctionDefinitionTests { .addStatement(Untyped.blockReturn(Untyped.stringLiteral("hello"))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("String", Types.metaType(Types.STRING)) )); @@ -276,7 +276,7 @@ public class TypeCheckerFunctionDefinitionTests { .addStatement(Untyped.expressionStatement(Untyped.reference("y"))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("Unit", Types.metaType(Types.UNIT)), Map.entry("x", Types.STRING), Map.entry("y", Types.STRING) @@ -301,7 +301,7 @@ public class TypeCheckerFunctionDefinitionTests { .addStatement(Untyped.expressionStatement(Untyped.reference("x"))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("String", Types.metaType(Types.STRING)), Map.entry("Unit", Types.metaType(Types.UNIT)) )); @@ -332,7 +332,7 @@ public class TypeCheckerFunctionDefinitionTests { ))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("Unit", Types.metaType(Types.UNIT)), Map.entry("x", Types.STRING) )); @@ -375,7 +375,7 @@ public class TypeCheckerFunctionDefinitionTests { ))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("Unit", Types.metaType(Types.UNIT)), Map.entry("y", Types.STRING) )); diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerIfTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerIfTests.java index 69ae78af..c178c2e9 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerIfTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerIfTests.java @@ -129,7 +129,7 @@ public class TypeCheckerIfTests { ); var context = TypeCheckerContext.EMPTY .enterNamespace(P.map( - Map.entry("x", Variable.defined(Types.STRING)) + Map.entry("x", Variable.defined(Types.STRING, VariableType.VAL)) )); var result = TypeChecker.typeCheckExpression(untyped, context); diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java index e9e5aba5..6f338803 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java @@ -20,7 +20,7 @@ public class TypeCheckerNamespaceTests { public void canTypeCheckEmptyNamespace() { var untyped = Untyped.namespace(List.of()); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); + .enterGlobal(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); var result = TypeChecker.typeCheckNamespace(untyped, context); @@ -39,7 +39,7 @@ public class TypeCheckerNamespaceTests { .build() )); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); + .enterGlobal(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); var result = TypeChecker.typeCheckNamespace(untyped, context); @@ -71,7 +71,7 @@ public class TypeCheckerNamespaceTests { .build() )); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); + .enterGlobal(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); var result = TypeChecker.typeCheckNamespace(untyped, context); @@ -103,7 +103,7 @@ public class TypeCheckerNamespaceTests { .build() )); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); + .enterGlobal(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); var result = TypeChecker.typeCheckNamespace(untyped, context); @@ -129,7 +129,7 @@ public class TypeCheckerNamespaceTests { .build() )); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); + .enterGlobal(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); var result = TypeChecker.typeCheckNamespace(untyped, context); @@ -155,7 +155,7 @@ public class TypeCheckerNamespaceTests { Untyped.val(Untyped.targetVariable("x"), Untyped.boolLiteral(true)) )); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); + .enterGlobal(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); var error = assertThrows( ReferenceBeforeDefinitionError.class, @@ -175,7 +175,7 @@ public class TypeCheckerNamespaceTests { Untyped.val(Untyped.targetVariable("x"), Untyped.call(Untyped.reference("f"), List.of())) )); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); + .enterGlobal(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); var result = TypeChecker.typeCheckNamespace(untyped, context); @@ -199,7 +199,7 @@ public class TypeCheckerNamespaceTests { .build() )); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); + .enterGlobal(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); var result = TypeChecker.typeCheckNamespace(untyped, context); @@ -225,7 +225,7 @@ public class TypeCheckerNamespaceTests { .build() )); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); + .enterGlobal(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); var result = TypeChecker.typeCheckNamespace(untyped, context); @@ -251,7 +251,7 @@ public class TypeCheckerNamespaceTests { .build() )); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); + .enterGlobal(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); var error = assertThrows( ReferenceBeforeDefinitionError.class, @@ -273,7 +273,7 @@ public class TypeCheckerNamespaceTests { .build() )); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); + .enterGlobal(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); var error = assertThrows( ReferenceBeforeDefinitionError.class, @@ -296,7 +296,7 @@ public class TypeCheckerNamespaceTests { ) ); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); + .enterGlobal(P.map(Map.entry("Unit", Types.metaType(Types.UNIT)))); var result = TypeChecker.typeCheckNamespace(untyped, context); diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerReferenceTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerReferenceTests.java index 0992648d..3a93a5b3 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerReferenceTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerReferenceTests.java @@ -18,7 +18,7 @@ public class TypeCheckerReferenceTests { public void whenNameIsBoundInEnvironmentThenTypeIsUsedFromEnvironment() { var untyped = Untyped.reference("x"); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("x", Types.STRING))); + .enterGlobal(P.map(Map.entry("x", Types.STRING))); var typed = TypeChecker.typeCheckExpression(untyped, context); @@ -29,7 +29,7 @@ public class TypeCheckerReferenceTests { public void whenNameIsNotBoundInEnvironmentThenErrorIsThrown() { var untyped = Untyped.reference("x"); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("y", Types.STRING))); + .enterGlobal(P.map(Map.entry("y", Types.STRING))); var error = assertThrows( UnknownVariableError.class, diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerTypeLevelReferenceTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerTypeLevelReferenceTests.java index 2c386dd3..ac3cbeb8 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerTypeLevelReferenceTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerTypeLevelReferenceTests.java @@ -21,7 +21,7 @@ public class TypeCheckerTypeLevelReferenceTests { public void whenNameIsBoundInEnvironmentThenTypeIsUsedFromEnvironment() { var untyped = Untyped.typeLevelReference("String"); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("String", Types.metaType(Types.STRING)))); + .enterGlobal(P.map(Map.entry("String", Types.metaType(Types.STRING)))); var typed = TypeChecker.typeCheckTypeLevelExpression(TypeSets.META_TYPE, untyped, context); @@ -32,7 +32,7 @@ public class TypeCheckerTypeLevelReferenceTests { public void whenNameRefersToNonTypeLevelValueThenErrorIsThrown() { var untyped = Untyped.typeLevelReference("String"); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("String", Types.STRING))); + .enterGlobal(P.map(Map.entry("String", Types.STRING))); var error = assertThrows( UnexpectedTypeError.class, @@ -47,7 +47,7 @@ public class TypeCheckerTypeLevelReferenceTests { public void whenNameRefersToValueOfWrongTypeThenErrorIsThrown() { var untyped = Untyped.typeLevelReference("Io"); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Io", Types.effectType(Effects.IO)))); + .enterGlobal(P.map(Map.entry("Io", Types.effectType(Effects.IO)))); var error = assertThrows( UnexpectedTypeError.class, @@ -62,7 +62,7 @@ public class TypeCheckerTypeLevelReferenceTests { public void whenNameIsNotBoundInEnvironmentThenErrorIsThrown() { var untyped = Untyped.typeLevelReference("String"); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map(Map.entry("Int", Types.metaType(Types.INT)))); + .enterGlobal(P.map(Map.entry("Int", Types.metaType(Types.INT)))); var error = assertThrows( UnknownVariableError.class, diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerValTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerValTests.java index 82df09da..c760a82e 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerValTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerValTests.java @@ -48,7 +48,7 @@ public class TypeCheckerValTests { .addStatement(Untyped.expressionStatement(Untyped.reference("x"))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("Unit", Types.metaType(Types.UNIT)) )); @@ -71,7 +71,7 @@ public class TypeCheckerValTests { .addStatement(Untyped.val(Untyped.targetVariable("y"), Untyped.reference("x"))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("Unit", Types.metaType(Types.UNIT)) )); @@ -94,7 +94,7 @@ public class TypeCheckerValTests { .addStatement(Untyped.val(Untyped.targetVariable("x"), Untyped.stringLiteral("hello"))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("Unit", Types.metaType(Types.UNIT)) )); @@ -113,7 +113,7 @@ public class TypeCheckerValTests { .addStatement(Untyped.val(Untyped.targetVariable("x"), Untyped.stringLiteral("hello"))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("Unit", Types.metaType(Types.UNIT)), Map.entry("x", Types.INT) )); @@ -133,7 +133,7 @@ public class TypeCheckerValTests { .addStatement(Untyped.val(Untyped.targetVariable("x"), Untyped.stringLiteral("hello"))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("Unit", Types.metaType(Types.UNIT)) )); diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerVarTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerVarTests.java index 244ddc98..865d01eb 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerVarTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerVarTests.java @@ -37,7 +37,7 @@ public class TypeCheckerVarTests { .addStatement(Untyped.expressionStatement(Untyped.reference("x"))) .build(); var context = TypeCheckerContext.EMPTY - .enterNamespaceWithDefinedVariables(P.map( + .enterGlobal(P.map( Map.entry("Unit", Types.metaType(Types.UNIT)) )); |
