Skip to content

Commit 01ecfda

Browse files
authored
IDE: use more efficient API to collect default implementations for protocol members. NFC (#19032)
1 parent b312090 commit 01ecfda

File tree

1 file changed

+2
-7
lines changed

1 file changed

+2
-7
lines changed

lib/IDE/IDETypeChecking.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -536,8 +536,6 @@ hasMergeGroup(MergeGroupKind Kind) {
536536
void swift::
537537
collectDefaultImplementationForProtocolMembers(ProtocolDecl *PD,
538538
llvm::SmallDenseMap<ValueDecl*, ValueDecl*> &DefaultMap) {
539-
Type BaseTy = PD->getDeclaredInterfaceType();
540-
DeclContext *DC = PD->getInnermostDeclContext();
541539
auto HandleMembers = [&](DeclRange Members) {
542540
for (Decl *D : Members) {
543541
auto *VD = dyn_cast<ValueDecl>(D);
@@ -550,11 +548,8 @@ collectDefaultImplementationForProtocolMembers(ProtocolDecl *PD,
550548
if (VD->getBaseName().empty())
551549
continue;
552550

553-
ResolvedMemberResult Result = resolveValueMember(*DC, BaseTy,
554-
VD->getFullName());
555-
assert(Result);
556-
for (auto *Default : Result.getMemberDecls(InterestedMemberKind::All)) {
557-
if (PD == Default->getDeclContext()->getExtendedProtocolDecl()) {
551+
for (auto *Default: PD->lookupDirect(VD->getFullName())) {
552+
if (Default->getDeclContext()->getExtendedProtocolDecl() == PD) {
558553
DefaultMap.insert({Default, VD});
559554
}
560555
}

0 commit comments

Comments
 (0)