aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-07-28 21:45:24 +0100
committerMichael Williamson <mike@zwobble.org>2023-07-28 21:45:24 +0100
commite4772ab0d4466f3844091ad603938b24c442e75b (patch)
treebedbf95a0b646b9f9f4b79a2f37cd52bda6ed466 /src/main/java
parent30fd20f6afb6c3ad364497722387d17767e43ffd (diff)
Implement DeclaredVariables for new nodes
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/typechecker/DeclaredVariables.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/org/shedlang/compiler/typechecker/DeclaredVariables.java b/src/main/java/org/shedlang/compiler/typechecker/DeclaredVariables.java
index 5627d462..faa8f4e2 100644
--- a/src/main/java/org/shedlang/compiler/typechecker/DeclaredVariables.java
+++ b/src/main/java/org/shedlang/compiler/typechecker/DeclaredVariables.java
@@ -22,6 +22,9 @@ class DeclaredVariables {
PVector<UntypedVariableDeclarationNode> variables
) {
return switch (statement) {
+ case UntypedAssignNode assign ->
+ variables;
+
case UntypedBlockReturnNode blockReturn ->
variables;
@@ -33,6 +36,9 @@ class DeclaredVariables {
case UntypedValNode val ->
forVal(val, variables);
+
+ case UntypedVarNode var ->
+ forVar(var, variables);
};
}
@@ -67,6 +73,13 @@ class DeclaredVariables {
return forTarget(statement.target(), variables);
}
+ static PVector<UntypedVariableDeclarationNode> forVar(
+ UntypedVarNode statement,
+ PVector<UntypedVariableDeclarationNode> variables
+ ) {
+ return forTarget(statement.target(), variables);
+ }
+
private static PVector<UntypedVariableDeclarationNode> forTarget(
UntypedTargetNode target,
PVector<UntypedVariableDeclarationNode> variables