aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-10-22 13:39:03 +0100
committerMichael Williamson <mike@zwobble.org>2023-10-22 13:39:03 +0100
commit697cc09329f8e8b1a76f408c12b88d6f387f16e7 (patch)
tree2a47d57aeb3cc1c6919655bf3d312e0abf3796a4 /src/main/java
parent1248589625d7be5435441c1e48b6f5ce72933897 (diff)
Add visibility to UntypedSumTypeDefinitionNode
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/ast/untyped/UntypedSumTypeDefinitionNode.java18
-rw-r--r--src/main/java/org/shedlang/compiler/parser/Parser.java2
2 files changed, 16 insertions, 4 deletions
diff --git a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedSumTypeDefinitionNode.java b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedSumTypeDefinitionNode.java
index 150c2c59..18bdc6d8 100644
--- a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedSumTypeDefinitionNode.java
+++ b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedSumTypeDefinitionNode.java
@@ -3,37 +3,49 @@ package org.shedlang.compiler.ast.untyped;
import org.pcollections.PVector;
import org.shedlang.compiler.sources.Source;
import org.shedlang.compiler.sources.Sources;
+import org.shedlang.compiler.types.Visibility;
import org.shedlang.compiler.util.P;
import java.util.List;
public record UntypedSumTypeDefinitionNode(
String name,
+ Visibility visibility,
List<UntypedTypeLevelExpressionNode> variants,
Source source
) implements UntypedNamespaceStatementNode {
public static Builder builder() {
- return new Builder("DefaultSumTypeName", P.vector());
+ return new Builder("DefaultSumTypeName", Visibility.PRIVATE, P.vector());
}
public record Builder(
String name,
+ Visibility visibility,
PVector<UntypedTypeLevelExpressionNode> variants
) {
public UntypedSumTypeDefinitionNode build() {
return new UntypedSumTypeDefinitionNode(
this.name,
+ this.visibility,
this.variants,
Sources.NULL
);
}
public Builder withName(String name) {
- return new Builder(name, this.variants);
+ return new Builder(
+ name,
+ this.visibility,
+ this.variants
+ );
}
public Builder addVariant(UntypedTypeLevelExpressionNode variant) {
- return new Builder(this.name, this.variants.plus(variant));
+ return new Builder(
+ this.name,
+ this.visibility,
+ this.variants.plus(variant)
+ );
}
}
}
diff --git a/src/main/java/org/shedlang/compiler/parser/Parser.java b/src/main/java/org/shedlang/compiler/parser/Parser.java
index 0151e7d6..92052722 100644
--- a/src/main/java/org/shedlang/compiler/parser/Parser.java
+++ b/src/main/java/org/shedlang/compiler/parser/Parser.java
@@ -696,7 +696,7 @@ public class Parser {
var end = tokens.position();
var source = start.to(end);
- return new UntypedSumTypeDefinitionNode(name, variants, source);
+ return new UntypedSumTypeDefinitionNode(name, Visibility.PRIVATE, variants, source);
}
static UntypedExpressionNode parseTopLevelExpression(TokenIterator<TokenType> tokens) {