Skip to content

Commit 3072a68

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 8dddc89 commit 3072a68

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
@@ -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

Comments
 (0)