From b003b9c7bad4126d7963d1a28ef46faeab4b4b6e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 13 Jun 2023 23:31:37 +0100 Subject: Store field names in typed namespace node --- src/test/java/org/shedlang/compiler/ast/typed/Typed.java | 2 +- .../org/shedlang/compiler/ast/typed/TypedNodeMatchers.java | 8 ++++++-- .../compiler/typechecker/TypeCheckerNamespaceTests.java | 11 +++++++---- 3 files changed, 14 insertions(+), 7 deletions(-) (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/ast/typed/Typed.java b/src/test/java/org/shedlang/compiler/ast/typed/Typed.java index a36c9679..ae709dd4 100644 --- a/src/test/java/org/shedlang/compiler/ast/typed/Typed.java +++ b/src/test/java/org/shedlang/compiler/ast/typed/Typed.java @@ -51,7 +51,7 @@ public class Typed { NamespaceName namespaceName, List body ) { - return new TypedNamespaceNode(namespaceName, body, Sources.NULL); + return new TypedNamespaceNode(namespaceName, body, List.of(), Sources.NULL); } public static TypedStringLiteralNode stringLiteral(String value) { diff --git a/src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java b/src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java index dad777f6..26e6acbc 100644 --- a/src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java +++ b/src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java @@ -62,9 +62,13 @@ public class TypedNodeMatchers { } public static Matcher isTypedNamespaceNode( - Matcher> body + Matcher> body, + Matcher> fieldNames ) { - return has("body", x -> x.body(), body); + return allOf( + has("body", x -> x.body(), body), + has("fieldNames", x -> x.fieldNames(), fieldNames) + ); } public static Matcher isTypedParamNode( diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java index 734ed89a..bbc4947c 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerNamespaceTests.java @@ -28,7 +28,7 @@ public class TypeCheckerNamespaceTests { assertThat( result.value(), - isTypedNamespaceNode(isSequence()) + isTypedNamespaceNode(isSequence(), isSequence()) ); } @@ -47,9 +47,12 @@ public class TypeCheckerNamespaceTests { assertThat( result.value(), - isTypedNamespaceNode(isSequence( - isTypedFunctionDefinitionNode().withName("f") - )) + isTypedNamespaceNode( + isSequence( + isTypedFunctionDefinitionNode().withName("f") + ), + isSequence(equalTo("f")) + ) ); } -- cgit v1.2.3