From 1e6ea9f8b84625c46a09b16fc7f68d04205465bd Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 7 Nov 2023 17:01:06 +0000 Subject: Use type hint when typing expression of return statements --- src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/main/java') 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.empty(); + var expressionResult = typeCheckExpressionOptional( untyped.expression(), - Optional.empty(), + expressionTypeHint, untyped.source(), context ); -- cgit v1.2.3