From 1dc8b36afbdb164029212d199d225c728c1fa5d9 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 1 Oct 2023 17:52:38 +0100 Subject: Extract duplicated typeCheckNamespaceStatement() function --- .../compiler/typechecker/TypeCheckerTesting.java | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/test/java/org/shedlang/compiler/typechecker/TypeCheckerTesting.java (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerTesting.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerTesting.java new file mode 100644 index 00000000..e089884f --- /dev/null +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerTesting.java @@ -0,0 +1,23 @@ +package org.shedlang.compiler.typechecker; + +import org.shedlang.compiler.ast.typed.TypedNamespaceStatementNode; +import org.shedlang.compiler.ast.untyped.UntypedNamespaceStatementNode; +import org.shedlang.compiler.types.NamespaceName; +import org.shedlang.compiler.util.P; + +public class TypeCheckerTesting { + private TypeCheckerTesting() { + } + + static TypeCheckerResult typeCheckNamespaceStatement( + UntypedNamespaceStatementNode untyped, + TypeCheckerContext context + ) { + var declaredVariables = DeclaredVariables.forNamespaceStatement(untyped, P.vector()); + var environment = EnvironmentBuilder.EMPTY.addUndefined(declaredVariables); + + context = context.enterNamespace(NamespaceName.of("Example"), environment.build()); + + return TypeChecker.typeCheckStepsNamespaceStatement(untyped).typeCheckAllPhases(context); + } +} -- cgit v1.2.3