From b638bb3c6cee3b7d802b357ccc4ffaa87350eb9b Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Fri, 19 Jun 2026 23:08:47 +0100 Subject: Make relative imports relative to parent namespace --- .../hobgoblin/compiler/typechecker/NamespaceNameResolution.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/main') diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/NamespaceNameResolution.java b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/NamespaceNameResolution.java index ec6187d..e72e310 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/NamespaceNameResolution.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/typechecker/NamespaceNameResolution.java @@ -19,12 +19,11 @@ public class NamespaceNameResolution { return importedNamespaceName; } - if (importedAncestorDepth.get() > current.parts().size()) { + if (importedAncestorDepth.get() >= current.parts().size()) { throw new RootNamespaceHasNoParentError(source); } - // TODO: should always skip right-most part? For instance, within src/line.hob, does ./point reference src/point.hob or src/line/point.hob? - var parts = new ArrayList<>(current.parts().subList(0, current.parts().size() - importedAncestorDepth.get())); + var parts = new ArrayList<>(current.parts().subList(0, current.parts().size() - importedAncestorDepth.get() - 1)); parts.addAll(importedNamespaceName.parts()); return new NamespaceName(parts); } -- cgit v1.2.3