@@ -250,10 +250,9 @@ StoredPropertiesAndMissingMembersRequest::evaluate(Evaluator &evaluator,
250250}
251251
252252// / Validate the \c entryNumber'th entry in \c binding.
253- const PatternBindingEntry *
254- PatternBindingEntryRequest::evaluate (Evaluator &eval,
255- PatternBindingDecl *binding,
256- unsigned entryNumber) const {
253+ const PatternBindingEntry *PatternBindingEntryRequest::evaluate (
254+ Evaluator &eval, PatternBindingDecl *binding, unsigned entryNumber,
255+ bool LeaveClosureBodiesUnchecked) const {
257256 const auto &pbe = binding->getPatternList ()[entryNumber];
258257 auto &Context = binding->getASTContext ();
259258
@@ -363,8 +362,12 @@ PatternBindingEntryRequest::evaluate(Evaluator &eval,
363362 if (patternType->hasUnresolvedType () ||
364363 patternType->hasPlaceholder () ||
365364 patternType->hasUnboundGenericType ()) {
366- if (TypeChecker::typeCheckPatternBinding (binding, entryNumber,
367- patternType)) {
365+ TypeCheckExprOptions options;
366+ if (LeaveClosureBodiesUnchecked) {
367+ options |= TypeCheckExprFlags::LeaveClosureBodyUnchecked;
368+ }
369+ if (TypeChecker::typeCheckPatternBinding (binding, entryNumber, patternType,
370+ options)) {
368371 binding->setInvalid ();
369372 return &pbe;
370373 }
0 commit comments