aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-10-29 17:06:13 +0000
committerMichael Williamson <mike@zwobble.org>2023-10-29 17:06:13 +0000
commitbd698f42bcb58939931f000bde2ec7ead4c9aa52 (patch)
treef432f3f2aa36d8b36003b15836210edf5c6b7432 /src/test/java
parentec53419bb5fdc6d6a0597392948ff3ca8b394df7 (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.java16
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))
+ );
+ }
}