diff options
Diffstat (limited to 'src/main/java')
3 files changed, 18 insertions, 1 deletions
diff --git a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedExpressionNode.java b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedExpressionNode.java index 60f80022..a8c068e0 100644 --- a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedExpressionNode.java +++ b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedExpressionNode.java @@ -1,5 +1,5 @@ package org.shedlang.compiler.ast.untyped; public sealed interface UntypedExpressionNode extends UntypedNode - permits UntypedBinaryOperationNode, UntypedBoolLiteralNode, UntypedCallNode, UntypedFieldAccessNode, UntypedFunctionExpressionNode, UntypedIfNode, UntypedIntLiteralNode, UntypedReferenceNode, UntypedStringLiteralNode, UntypedTryNode, UntypedTupleNode, UntypedWhenNode { + permits UntypedBinaryOperationNode, UntypedBoolLiteralNode, UntypedCallNode, UntypedFieldAccessNode, UntypedFunctionExpressionNode, UntypedIfNode, UntypedIntLiteralNode, UntypedReferenceNode, UntypedStringLiteralNode, UntypedTryNode, UntypedTupleNode, UntypedUnitLiteralNode, UntypedWhenNode { } diff --git a/src/main/java/org/shedlang/compiler/ast/untyped/UntypedUnitLiteralNode.java b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedUnitLiteralNode.java new file mode 100644 index 00000000..4ca98c78 --- /dev/null +++ b/src/main/java/org/shedlang/compiler/ast/untyped/UntypedUnitLiteralNode.java @@ -0,0 +1,6 @@ +package org.shedlang.compiler.ast.untyped; + +import org.shedlang.compiler.sources.Source; + +public record UntypedUnitLiteralNode(Source source) implements UntypedExpressionNode { +} diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java index 6dd1a3f3..2991c344 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java +++ b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java @@ -430,6 +430,9 @@ public class TypeChecker { case UntypedTupleNode untypedTuple -> typeCheckTuple(untypedTuple, context); + case UntypedUnitLiteralNode untypedUnit -> + typeCheckUnitLiteral(untypedUnit, context); + case UntypedWhenNode untypedWhen -> typeCheckWhen(untypedWhen, context); }; @@ -1520,6 +1523,14 @@ public class TypeChecker { }; } + private static TypeCheckerResult<TypedExpressionNode> typeCheckUnitLiteral( + UntypedUnitLiteralNode untyped, + TypeCheckerContext context + ) { + return context.toResult(new TypedUnitLiteralNode(untyped.source())); + } + + private static TypeCheckerResult<TypedWhenNode> typeCheckWhen( UntypedWhenNode untyped, TypeCheckerContext context |
