aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-31 23:01:07 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-31 23:01:07 +0100
commitab0e1c0e31158a090630070472723c34deedc83a (patch)
treeb39be95df04369d41ebb2886b0e0c7ab480e4cbf /src/test/java
parentfa5df9169c64e6b7abaf6ec7825c4788d7638bc4 (diff)
Add notion of VariableType
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerAssignTests.java4
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerCallTests.java28
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerContextTests.java24
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionDefinitionTests.java30
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerIfTests.java2
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java24
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerReferenceTests.java4
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerTypeLevelReferenceTests.java8
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerValTests.java10
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerVarTests.java2
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))
));