diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/ast/untyped/UntypedSumTypeDefinitionNode.java | 18 | ||||
| -rw-r--r-- | src/main/java/org/shedlang/compiler/parser/Parser.java | 2 |
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) { |
