aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/shedlang/compiler/ast
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-28 22:18:28 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-28 22:18:28 +0100
commitf3da8bbffe9cdf80ba3f422ec2d8ff7ce13ea2ae (patch)
treeae663ed62d128b7df8887395cf7e1eb2d48ee864 /src/test/java/org/shedlang/compiler/ast
parente4772ab0d4466f3844091ad603938b24c442e75b (diff)
Type check var statements
Diffstat (limited to 'src/test/java/org/shedlang/compiler/ast')
-rw-r--r--src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java11
-rw-r--r--src/test/java/org/shedlang/compiler/ast/untyped/Untyped.java7
2 files changed, 18 insertions, 0 deletions
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 3a46fa54..ef2e4686 100644
--- a/src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java
+++ b/src/test/java/org/shedlang/compiler/ast/typed/TypedNodeMatchers.java
@@ -237,4 +237,15 @@ public class TypedNodeMatchers {
has("expression", x -> x.expression(), expression)
);
}
+
+ public static Matcher<TypedNode> isTypedVarNode(
+ Matcher<? super TypedTargetNode> target,
+ Matcher<? super TypedExpressionNode> expression
+ ) {
+ return instanceOf(
+ TypedVarNode.class,
+ has("target", x -> x.target(), target),
+ has("expression", x -> x.expression(), expression)
+ );
+ }
}
diff --git a/src/test/java/org/shedlang/compiler/ast/untyped/Untyped.java b/src/test/java/org/shedlang/compiler/ast/untyped/Untyped.java
index 8dddfa58..141212cc 100644
--- a/src/test/java/org/shedlang/compiler/ast/untyped/Untyped.java
+++ b/src/test/java/org/shedlang/compiler/ast/untyped/Untyped.java
@@ -157,4 +157,11 @@ public class Untyped {
) {
return new UntypedValNode(target, expression, Sources.NULL);
}
+
+ public static UntypedVarNode var(
+ UntypedTargetNode target,
+ UntypedExpressionNode expression
+ ) {
+ return new UntypedVarNode(target, expression, Sources.NULL);
+ }
}