Skip to content

Commit f258a77

Browse files
committed
[Sema/CodeCompletion] Leave complex closure bodies unchecked
Preserve pre SE-0326 for code completion, so it could be ported gradually.
1 parent dcf80e6 commit f258a77

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

lib/Sema/TypeCheckCodeCompletion.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,7 @@ getTypeOfExpressionWithoutApplying(Expr *&expr, DeclContext *dc,
309309

310310
ConstraintSystemOptions options;
311311
options |= ConstraintSystemFlags::SuppressDiagnostics;
312+
options |= ConstraintSystemFlags::LeaveClosureBodyUnchecked;
312313

313314
// Construct a constraint system from this expression.
314315
ConstraintSystem cs(dc, options);
@@ -403,6 +404,7 @@ getTypeOfCompletionOperatorImpl(DeclContext *DC, Expr *expr,
403404
ConstraintSystemOptions options;
404405
options |= ConstraintSystemFlags::SuppressDiagnostics;
405406
options |= ConstraintSystemFlags::ReusePrecheckedType;
407+
options |= ConstraintSystemFlags::LeaveClosureBodyUnchecked;
406408

407409
// Construct a constraint system from this expression.
408410
ConstraintSystem CS(DC, options);
@@ -810,6 +812,8 @@ bool TypeChecker::typeCheckForCodeCompletion(
810812
options |= ConstraintSystemFlags::AllowFixes;
811813
options |= ConstraintSystemFlags::SuppressDiagnostics;
812814
options |= ConstraintSystemFlags::ForCodeCompletion;
815+
options |= ConstraintSystemFlags::LeaveClosureBodyUnchecked;
816+
813817

814818
ConstraintSystem cs(DC, options);
815819

@@ -980,7 +984,9 @@ bool swift::typeCheckExpression(DeclContext *DC, Expr *&parsedExpr) {
980984
parsedExpr = parsedExpr->walk(SanitizeExpr(ctx, /*shouldReusePrecheckedType=*/false));
981985

982986
DiagnosticSuppression suppression(ctx.Diags);
983-
auto resultTy = TypeChecker::typeCheckExpression(parsedExpr, DC);
987+
auto resultTy = TypeChecker::typeCheckExpression(
988+
parsedExpr, DC,
989+
/*contextualInfo=*/{}, TypeCheckExprFlags::LeaveClosureBodyUnchecked);
984990
return !resultTy;
985991
}
986992

0 commit comments

Comments
 (0)