diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-10-29 17:06:13 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-10-29 17:06:13 +0000 |
| commit | bd698f42bcb58939931f000bde2ec7ead4c9aa52 (patch) | |
| tree | f432f3f2aa36d8b36003b15836210edf5c6b7432 /src/test/java | |
| parent | ec53419bb5fdc6d6a0597392948ff3ca8b394df7 (diff) | |
Allow function expression to have implicit unit return type
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/typechecker/TypeCheckerFunctionExpressionTests.java | 16 |
1 files changed, 16 insertions, 0 deletions
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)) + ); + } } |
