From bd698f42bcb58939931f000bde2ec7ead4c9aa52 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 29 Oct 2023 17:06:13 +0000 Subject: Allow function expression to have implicit unit return type --- .../typechecker/TypeCheckerFunctionExpressionTests.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/test/java') diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionExpressionTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionExpressionTests.java index 85f6b3b7..1d858123 100644 --- a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionExpressionTests.java +++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionExpressionTests.java @@ -38,4 +38,20 @@ public class TypeCheckerFunctionExpressionTests { .withType(new FunctionType(List.of(), List.of(), Effects.NONE, Types.UNIT)) ); } + + @Test + public void whenFunctionHasNoExplicitReturnsThenReturnTypeIsUnit() { + var untyped = UntypedFunctionExpressionNode.builder() + .withoutReturnType() + .build(); + var context = TypeCheckerContext.EMPTY; + + var typed = typeCheckExpression(untyped, context); + + assertThat( + typed.value(), + isTypedFunctionExpressionNode() + .withType(new FunctionType(List.of(), List.of(), Effects.NONE, Types.UNIT)) + ); + } } -- cgit v1.2.3