aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/ast/UntypedNodeMatchers.java7
-rw-r--r--src/test/java/org/shedlang/compiler/parser/ParserTypeLevelReferenceTests.java18
2 files changed, 25 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/ast/UntypedNodeMatchers.java b/src/test/java/org/shedlang/compiler/ast/UntypedNodeMatchers.java
index 3925ec80..bf98f5bc 100644
--- a/src/test/java/org/shedlang/compiler/ast/UntypedNodeMatchers.java
+++ b/src/test/java/org/shedlang/compiler/ast/UntypedNodeMatchers.java
@@ -39,4 +39,11 @@ public class UntypedNodeMatchers {
has("value", x -> x.value(), equalTo(value))
);
}
+
+ public static Matcher<UntypedTypeLevelExpressionNode> isUntypedTypeLevelReferenceNode(String name) {
+ return instanceOf(
+ UntypedTypeLevelReferenceNode.class,
+ has("name", x -> x.name(), equalTo(name))
+ );
+ }
}
diff --git a/src/test/java/org/shedlang/compiler/parser/ParserTypeLevelReferenceTests.java b/src/test/java/org/shedlang/compiler/parser/ParserTypeLevelReferenceTests.java
new file mode 100644
index 00000000..9e72ee25
--- /dev/null
+++ b/src/test/java/org/shedlang/compiler/parser/ParserTypeLevelReferenceTests.java
@@ -0,0 +1,18 @@
+package org.shedlang.compiler.parser;
+
+import org.junit.jupiter.api.Test;
+
+import static org.shedlang.compiler.ast.UntypedNodeMatchers.isUntypedTypeLevelReferenceNode;
+import static org.shedlang.compiler.parser.ParserTesting.parseString;
+import static org.zwobble.precisely.AssertThat.assertThat;
+
+public class ParserTypeLevelReferenceTests {
+ @Test
+ public void canParseIdentifierAsReference() {
+ var source = "Value";
+
+ var node = parseString(source, Parser::parseTopLevelTypeLevelExpression);
+
+ assertThat(node, isUntypedTypeLevelReferenceNode("Value"));
+ }
+}