diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-11-07 17:01:06 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-11-07 17:01:06 +0000 |
| commit | 1e6ea9f8b84625c46a09b16fc7f68d04205465bd (patch) | |
| tree | ea458b4018fae6938095481a5bd70a2a7c7b5c66 /src/main/java | |
| parent | e450be55c05a6bb1eda4e49595b50cf776e6e6d6 (diff) | |
Use type hint when typing expression of return statements
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java index 756e4584..3e9f4a46 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java +++ b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java @@ -804,10 +804,13 @@ public class TypeChecker { UntypedFunctionReturnNode untyped, TypeCheckerContext context ) { - // TODO: pass return type as hint if available + var expressionTypeHint = context.returnTypeState() instanceof ReturnTypeState.Explicit returnTypeExplicit + ? Optional.of(returnTypeExplicit.type()) + : Optional.<Type>empty(); + var expressionResult = typeCheckExpressionOptional( untyped.expression(), - Optional.empty(), + expressionTypeHint, untyped.source(), context ); |
