@@ -1130,16 +1130,15 @@ void ExtensionDecl::addedMember(Decl *member) {
1130
1130
static bool
1131
1131
populateLookupTableEntryFromLazyIDCLoader (ASTContext &ctx,
1132
1132
MemberLookupTable &LookupTable,
1133
- DeclName name,
1133
+ DeclBaseName name,
1134
1134
IterableDeclContext *IDC) {
1135
1135
if (IDC->isLoadingLazyMembers ()) {
1136
1136
return false ;
1137
1137
}
1138
1138
IDC->setLoadingLazyMembers (true );
1139
1139
auto ci = ctx.getOrCreateLazyIterableContextData (IDC,
1140
1140
/* lazyLoader=*/ nullptr );
1141
- if (auto res = ci->loader ->loadNamedMembers (IDC, name.getBaseName (),
1142
- ci->memberData )) {
1141
+ if (auto res = ci->loader ->loadNamedMembers (IDC, name, ci->memberData )) {
1143
1142
IDC->setLoadingLazyMembers (false );
1144
1143
if (auto s = ctx.Stats ) {
1145
1144
++s->getFrontendCounters ().NamedLazyMemberLoadSuccessCount ;
@@ -1158,11 +1157,11 @@ populateLookupTableEntryFromLazyIDCLoader(ASTContext &ctx,
1158
1157
}
1159
1158
1160
1159
static void populateLookupTableEntryFromCurrentMembers (
1161
- ASTContext &ctx, MemberLookupTable &LookupTable, DeclName name,
1160
+ ASTContext &ctx, MemberLookupTable &LookupTable, DeclBaseName name,
1162
1161
IterableDeclContext *IDC) {
1163
1162
for (auto m : IDC->getMembers ()) {
1164
1163
if (auto v = dyn_cast<ValueDecl>(m)) {
1165
- if (v->getFullName (). matchesRef (name. getBaseName ()) ) {
1164
+ if (v->getBaseName () == name ) {
1166
1165
LookupTable.addMember (m);
1167
1166
}
1168
1167
}
@@ -1173,7 +1172,7 @@ static void
1173
1172
populateLookupTableEntryFromExtensions (ASTContext &ctx,
1174
1173
MemberLookupTable &table,
1175
1174
NominalTypeDecl *nominal,
1176
- DeclName name) {
1175
+ DeclBaseName name) {
1177
1176
for (auto e : nominal->getExtensions ()) {
1178
1177
if (e->wasDeserialized () || e->hasClangNode ()) {
1179
1178
assert (!e->hasUnparsedMembers ());
@@ -1213,7 +1212,7 @@ void NominalTypeDecl::prepareLookupTable() {
1213
1212
setLookupTablePopulated (true );
1214
1213
LookupTable.getPointer ()->addMembers (getCurrentMembersWithoutLoading ());
1215
1214
1216
- llvm::SetVector<DeclName > baseNamesPresent;
1215
+ llvm::SetVector<DeclBaseName > baseNamesPresent;
1217
1216
for (auto entry : *LookupTable.getPointer ()) {
1218
1217
baseNamesPresent.insert (entry.getFirst ().getBaseName ());
1219
1218
}
@@ -1345,10 +1344,11 @@ TinyPtrVector<ValueDecl *> NominalTypeDecl::lookupDirect(
1345
1344
// false, and we fall back to loading all members during the retry.
1346
1345
auto &Table = *LookupTable.getPointer ();
1347
1346
if (populateLookupTableEntryFromLazyIDCLoader (ctx, Table,
1348
- name, this )) {
1347
+ name. getBaseName () , this )) {
1349
1348
useNamedLazyMemberLoading = false ;
1350
1349
} else {
1351
- populateLookupTableEntryFromExtensions (ctx, Table, this , name);
1350
+ populateLookupTableEntryFromExtensions (ctx, Table, this ,
1351
+ name.getBaseName ());
1352
1352
}
1353
1353
}
1354
1354
0 commit comments