diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-10-22 13:37:51 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-10-22 13:37:51 +0100 |
| commit | 1248589625d7be5435441c1e48b6f5ce72933897 (patch) | |
| tree | 851b35988cef31c58dcadf6e1ff1dd2eb3fc012b /src/main/java | |
| parent | 9030b7977a785f6e92a3385a64084a5a4e11fa04 (diff) | |
Have UntypedImportNode implement UntypedVariableDeclarationNode
Diffstat (limited to 'src/main/java')
3 files changed, 12 insertions, 7 deletions
diff --git a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedImportNode.java b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedImportNode.java index 8c8103a7..77e07922 100644 --- a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedImportNode.java +++ b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedImportNode.java @@ -2,9 +2,16 @@ package org.shedlang.compiler.ast.untyped; import org.shedlang.compiler.sources.Source; import org.shedlang.compiler.types.NamespaceName; +import org.shedlang.compiler.types.Visibility; -public record UntypedImportNode(NamespaceName namespaceName, Source source) implements UntypedNode { - public String variableName() { +public record UntypedImportNode(NamespaceName namespaceName, Source source) implements UntypedNode, UntypedVariableDeclarationNode { + @Override + public String name() { return namespaceName.parts().getLast(); } + + @Override + public Visibility visibility() { + return Visibility.PRIVATE; + } } diff --git a/src/main/java/org/shedlang/compiler/typechecker/DeclaredVariables.java b/src/main/java/org/shedlang/compiler/typechecker/DeclaredVariables.java index 4fc0d8fd..6d1c80eb 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/DeclaredVariables.java +++ b/src/main/java/org/shedlang/compiler/typechecker/DeclaredVariables.java @@ -51,11 +51,9 @@ class DeclaredVariables { UntypedImportNode import_, PVector<DeclaredVariable> variables ) { - return variables.plus(new DeclaredVariable( - import_.variableName(), + return variables.plus(DeclaredVariable.fromNode( VariableType.IMPORT, - Visibility.PRIVATE, - import_.source() + import_ )); } diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java index f4033702..b8a487e4 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java +++ b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java @@ -689,7 +689,7 @@ public class TypeChecker { var typedImportNodes = new ArrayList<TypedImportNode>(); for (var import_ : untyped.imports()) { namespaceEnvironment = namespaceEnvironment.add( - import_.variableName(), + import_.name(), Variable.defined(new NamespaceType(import_.namespaceName()), VariableType.IMPORT), import_.source() ); |
