@@ -564,26 +564,26 @@ static void lookupVisibleMemberDeclsImpl(
564
564
// If we're looking into a type parameter and we have a generic signature
565
565
// builder, use the GSB to resolve where we should look.
566
566
if (BaseTy->isTypeParameter () && GSB) {
567
- auto PA = GSB-> resolveArchetype (
568
- BaseTy,
569
- ArchetypeResolutionKind::CompleteWellFormed);
570
- if (!PA ) return ;
567
+ auto EquivClass =
568
+ GSB-> resolveEquivalenceClass ( BaseTy,
569
+ ArchetypeResolutionKind::CompleteWellFormed);
570
+ if (!EquivClass ) return ;
571
571
572
- if (auto Concrete = PA-> getConcreteType () ) {
573
- BaseTy = Concrete ;
572
+ if (EquivClass-> concreteType ) {
573
+ BaseTy = EquivClass-> concreteType ;
574
574
} else {
575
575
// Conformances
576
- for (auto Proto : PA-> getConformsTo () ) {
576
+ for (const auto &Conforms : EquivClass-> conformsTo ) {
577
577
lookupVisibleProtocolMemberDecls (
578
- BaseTy, Proto ->getDeclaredType (), Consumer, CurrDC, LS ,
579
- getReasonForSuper (Reason), TypeResolver, GSB, Visited);
578
+ BaseTy, Conforms. first ->getDeclaredType (), Consumer, CurrDC,
579
+ LS, getReasonForSuper (Reason), TypeResolver, GSB, Visited);
580
580
}
581
581
582
582
// Superclass.
583
- if (auto Superclass = PA-> getSuperclass () ) {
584
- lookupVisibleMemberDeclsImpl (Superclass , Consumer, CurrDC, LS ,
585
- getReasonForSuper (Reason), TypeResolver ,
586
- GSB, Visited);
583
+ if (EquivClass-> superclass ) {
584
+ lookupVisibleMemberDeclsImpl (EquivClass-> superclass , Consumer, CurrDC,
585
+ LS, getReasonForSuper (Reason),
586
+ TypeResolver, GSB, Visited);
587
587
}
588
588
return ;
589
589
}
0 commit comments