summaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java
index 4b718a2..77b46bc 100644
--- a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java
+++ b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/TypeChecker.java
@@ -19,6 +19,17 @@ public class TypeChecker {
) {
var namespaceContext = context.enterNamespace(untyped.namespaceName());
+ for (var untypedImport : untyped.imports()) {
+ if (untypedImport.ancestorDepth().isPresent()) {
+ throw new UnsupportedOperationException("TODO: relative imports");
+ }
+
+ var importedNamespaceFields = context.namespaceFields(untypedImport.namespaceName());
+ for (var importedName : untypedImport.importedNames()) {
+ namespaceContext.define(importedName, importedNamespaceFields.get(importedName));
+ }
+ }
+
var fields = new ArrayList<Field>();
for (var untypedStatement : untyped.body()) {
var type = declareNamespaceStatement(untypedStatement, namespaceContext);