File tree Expand file tree Collapse file tree 1 file changed +16
-18
lines changed Expand file tree Collapse file tree 1 file changed +16
-18
lines changed Original file line number Diff line number Diff line change @@ -369,28 +369,26 @@ struct SynthesizedExtensionAnalyzer::Implementation {
369
369
LookUpConformanceInModule ());
370
370
371
371
SmallVector<Requirement, 2 > subReqs;
372
- switch (SubstReq.checkRequirement (subReqs)) {
373
- case CheckRequirementResult::Success:
374
- break ;
372
+ subReqs.push_back (SubstReq);
375
373
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 ;
379
381
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:
390
383
return true ;
391
384
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
+ }
394
392
}
395
393
}
396
394
return false ;
You can’t perform that action at this time.
0 commit comments