[Index] Add index support for cross import overlays.

Resolves rdar://problem/59445445
This commit is contained in:
Nathan Hawes
2020-03-25 10:04:41 -07:00
parent 1beb37e1b5
commit 8b03b05f1d
14 changed files with 195 additions and 30 deletions

View File

@@ -2105,10 +2105,15 @@ SourceFile::getModuleShadowedBySeparatelyImportedOverlay(const ModuleDecl *overl
}
}
}
auto i = separatelyImportedOverlaysReversed.find(overlay);
return i != separatelyImportedOverlaysReversed.end()
? std::get<1>(*i)
: nullptr;
ModuleDecl *underlying = const_cast<ModuleDecl *>(overlay);
while (underlying->getNameStr().startswith("_")) {
auto next = separatelyImportedOverlaysReversed.find(underlying);
if (next == separatelyImportedOverlaysReversed.end())
return nullptr;
underlying = std::get<1>(*next);
}
return underlying;
};
void ModuleDecl::clearLookupCache() {