Skip to content

Commit 027e4b7

Browse files
committed
[NFC] Make base-name behavior of lookup table loading explicit
We were unnecessarily converting back and forth between base names and full names, which seemed a bit silly.
1 parent 975aa53 commit 027e4b7

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

lib/AST/NameLookup.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1130,16 +1130,15 @@ void ExtensionDecl::addedMember(Decl *member) {
11301130
static bool
11311131
populateLookupTableEntryFromLazyIDCLoader(ASTContext &ctx,
11321132
MemberLookupTable &LookupTable,
1133-
DeclName name,
1133+
DeclBaseName name,
11341134
IterableDeclContext *IDC) {
11351135
if (IDC->isLoadingLazyMembers()) {
11361136
return false;
11371137
}
11381138
IDC->setLoadingLazyMembers(true);
11391139
auto ci = ctx.getOrCreateLazyIterableContextData(IDC,
11401140
/*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)) {
11431142
IDC->setLoadingLazyMembers(false);
11441143
if (auto s = ctx.Stats) {
11451144
++s->getFrontendCounters().NamedLazyMemberLoadSuccessCount;
@@ -1158,11 +1157,11 @@ populateLookupTableEntryFromLazyIDCLoader(ASTContext &ctx,
11581157
}
11591158

11601159
static void populateLookupTableEntryFromCurrentMembers(
1161-
ASTContext &ctx, MemberLookupTable &LookupTable, DeclName name,
1160+
ASTContext &ctx, MemberLookupTable &LookupTable, DeclBaseName name,
11621161
IterableDeclContext *IDC) {
11631162
for (auto m : IDC->getMembers()) {
11641163
if (auto v = dyn_cast<ValueDecl>(m)) {
1165-
if (v->getFullName().matchesRef(name.getBaseName())) {
1164+
if (v->getBaseName() == name) {
11661165
LookupTable.addMember(m);
11671166
}
11681167
}
@@ -1173,7 +1172,7 @@ static void
11731172
populateLookupTableEntryFromExtensions(ASTContext &ctx,
11741173
MemberLookupTable &table,
11751174
NominalTypeDecl *nominal,
1176-
DeclName name) {
1175+
DeclBaseName name) {
11771176
for (auto e : nominal->getExtensions()) {
11781177
if (e->wasDeserialized() || e->hasClangNode()) {
11791178
assert(!e->hasUnparsedMembers());
@@ -1213,7 +1212,7 @@ void NominalTypeDecl::prepareLookupTable() {
12131212
setLookupTablePopulated(true);
12141213
LookupTable.getPointer()->addMembers(getCurrentMembersWithoutLoading());
12151214

1216-
llvm::SetVector<DeclName> baseNamesPresent;
1215+
llvm::SetVector<DeclBaseName> baseNamesPresent;
12171216
for (auto entry : *LookupTable.getPointer()) {
12181217
baseNamesPresent.insert(entry.getFirst().getBaseName());
12191218
}
@@ -1345,10 +1344,11 @@ TinyPtrVector<ValueDecl *> NominalTypeDecl::lookupDirect(
13451344
// false, and we fall back to loading all members during the retry.
13461345
auto &Table = *LookupTable.getPointer();
13471346
if (populateLookupTableEntryFromLazyIDCLoader(ctx, Table,
1348-
name, this)) {
1347+
name.getBaseName(), this)) {
13491348
useNamedLazyMemberLoading = false;
13501349
} else {
1351-
populateLookupTableEntryFromExtensions(ctx, Table, this, name);
1350+
populateLookupTableEntryFromExtensions(ctx, Table, this,
1351+
name.getBaseName());
13521352
}
13531353
}
13541354

0 commit comments

Comments
 (0)