Skip to content

Commit eef40e8

Browse files
committed
IDE: Fix my own lazyness in SynthesizedExtensionAnalyzer::Implementation::isApplicable()
Fixes #76561
1 parent cdc2145 commit eef40e8

File tree

1 file changed

+16
-18
lines changed

1 file changed

+16
-18
lines changed

lib/IDE/IDETypeChecking.cpp

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -369,28 +369,26 @@ struct SynthesizedExtensionAnalyzer::Implementation {
369369
LookUpConformanceInModule());
370370

371371
SmallVector<Requirement, 2> subReqs;
372-
switch (SubstReq.checkRequirement(subReqs)) {
373-
case CheckRequirementResult::Success:
374-
break;
372+
subReqs.push_back(SubstReq);
375373

376-
case CheckRequirementResult::ConditionalConformance:
377-
// FIXME: Need to handle conditional requirements here!
378-
break;
374+
while (!subReqs.empty()) {
375+
auto req = subReqs.pop_back_val();
376+
switch (req.checkRequirement(subReqs)) {
377+
case CheckRequirementResult::Success:
378+
case CheckRequirementResult::PackRequirement:
379+
case CheckRequirementResult::ConditionalConformance:
380+
break;
379381

380-
case CheckRequirementResult::PackRequirement:
381-
// FIXME
382-
assert(false && "Refactor this");
383-
return true;
384-
385-
case CheckRequirementResult::SubstitutionFailure:
386-
return true;
387-
388-
case CheckRequirementResult::RequirementFailure:
389-
if (!SubstReq.canBeSatisfied())
382+
case CheckRequirementResult::SubstitutionFailure:
390383
return true;
391384

392-
MergeInfo.addRequirement(Req);
393-
break;
385+
case CheckRequirementResult::RequirementFailure:
386+
if (!SubstReq.canBeSatisfied())
387+
return true;
388+
389+
MergeInfo.addRequirement(Req);
390+
break;
391+
}
394392
}
395393
}
396394
return false;

0 commit comments

Comments
 (0)