From 6465a06977c79ccb3c328d3c97d6873066e46b11 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 14 Jun 2026 11:12:46 +0100 Subject: Create ancestor depth field --- .../hobgoblin/compiler/ast/untyped/UntypedImportNodeMatcher.java | 4 ++++ .../zwobble/hobgoblin/compiler/parser/ParserNamespaceTests.java | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'src/test/java/org/zwobble') diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedImportNodeMatcher.java b/src/test/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedImportNodeMatcher.java index 9c8c183..e902170 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedImportNodeMatcher.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/ast/untyped/UntypedImportNodeMatcher.java @@ -29,6 +29,10 @@ public class UntypedImportNodeMatcher implements org.zwobble.precisely.Matcher> ancestorDepth) { + return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNodeMatcher(java.util.stream.Stream.concat(this.submatchers.stream(), java.util.stream.Stream.of(org.zwobble.precisely.Matchers.has("ancestorDepth", org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode::ancestorDepth, ancestorDepth))).toList()); + } + public org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNodeMatcher withNamespaceName(org.zwobble.precisely.Matcher namespaceName) { return new org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNodeMatcher(java.util.stream.Stream.concat(this.submatchers.stream(), java.util.stream.Stream.of(org.zwobble.precisely.Matchers.has("namespaceName", org.zwobble.hobgoblin.compiler.ast.untyped.UntypedImportNode::namespaceName, namespaceName))).toList()); } diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/parser/ParserNamespaceTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/parser/ParserNamespaceTests.java index 4df8b95..ada6414 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/parser/ParserNamespaceTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/parser/ParserNamespaceTests.java @@ -42,13 +42,16 @@ public class ParserNamespaceTests { .withImports(isSequence( isUntypedImportNode() .withImportedNames(isSequence(equalTo("Point"))) + .withAncestorDepth(isOptionalEmpty()) .withNamespaceName(equalTo(NamespaceName.of("point"))), isUntypedImportNode() .withImportedNames(isSequence(equalTo("Square"), equalTo("Rectangle"))) - .withNamespaceName(equalTo(NamespaceName.of(".", "shapes"))), + .withAncestorDepth(isOptionalOf(equalTo(0))) + .withNamespaceName(equalTo(NamespaceName.of("shapes"))), isUntypedImportNode() .withImportedNames(isSequence(equalTo("Line"))) - .withNamespaceName(equalTo(NamespaceName.of("..", "..", "line"))) + .withAncestorDepth(isOptionalOf(equalTo(2))) + .withNamespaceName(equalTo(NamespaceName.of("line"))) )) ); } -- cgit v1.2.3