@@ -339,6 +339,7 @@ getTypeOfExpressionWithoutApplying(Expr *&expr, DeclContext *dc,
339339
340340 ConstraintSystemOptions options;
341341 options |= ConstraintSystemFlags::SuppressDiagnostics;
342+ options |= ConstraintSystemFlags::LeaveClosureBodyUnchecked;
342343
343344 // Construct a constraint system from this expression.
344345 ConstraintSystem cs (dc, options);
@@ -433,6 +434,7 @@ getTypeOfCompletionOperatorImpl(DeclContext *DC, Expr *expr,
433434 ConstraintSystemOptions options;
434435 options |= ConstraintSystemFlags::SuppressDiagnostics;
435436 options |= ConstraintSystemFlags::ReusePrecheckedType;
437+ options |= ConstraintSystemFlags::LeaveClosureBodyUnchecked;
436438
437439 // Construct a constraint system from this expression.
438440 ConstraintSystem CS (DC, options);
@@ -840,6 +842,8 @@ bool TypeChecker::typeCheckForCodeCompletion(
840842 options |= ConstraintSystemFlags::AllowFixes;
841843 options |= ConstraintSystemFlags::SuppressDiagnostics;
842844 options |= ConstraintSystemFlags::ForCodeCompletion;
845+ options |= ConstraintSystemFlags::LeaveClosureBodyUnchecked;
846+
843847
844848 ConstraintSystem cs (DC, options);
845849
@@ -1010,7 +1014,9 @@ bool swift::typeCheckExpression(DeclContext *DC, Expr *&parsedExpr) {
10101014 parsedExpr = parsedExpr->walk (SanitizeExpr (ctx, /* shouldReusePrecheckedType=*/ false ));
10111015
10121016 DiagnosticSuppression suppression (ctx.Diags );
1013- auto resultTy = TypeChecker::typeCheckExpression (parsedExpr, DC);
1017+ auto resultTy = TypeChecker::typeCheckExpression (
1018+ parsedExpr, DC,
1019+ /* contextualInfo=*/ {}, TypeCheckExprFlags::LeaveClosureBodyUnchecked);
10141020 return !resultTy;
10151021}
10161022
0 commit comments