summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaLookup.cpp
diff options
context:
space:
mode:
authorSam McCall <sam.mccall@gmail.com>2018-01-24 17:50:20 +0000
committerSam McCall <sam.mccall@gmail.com>2018-01-24 17:50:20 +0000
commitabdcc613b6f7a8ff4463f3adc19cc9cc46e91d23 (patch)
tree2c53a60aeaca241b49404af8c011889729d66253 /clang/lib/Sema/SemaLookup.cpp
parentcf3ad5841b7172250f237b48ffd0cace2e2184f5 (diff)
downloadbcm5719-llvm-abdcc613b6f7a8ff4463f3adc19cc9cc46e91d23.tar.gz
bcm5719-llvm-abdcc613b6f7a8ff4463f3adc19cc9cc46e91d23.zip
[CodeComplete] only respect LoadExternal hint at namespace/tu scope
Reviewers: ilya-biryukov Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D42428 llvm-svn: 323347
Diffstat (limited to 'clang/lib/Sema/SemaLookup.cpp')
-rw-r--r--clang/lib/Sema/SemaLookup.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaLookup.cpp b/clang/lib/Sema/SemaLookup.cpp
index 7e7eac38c1f..dd54fb4ad9e 100644
--- a/clang/lib/Sema/SemaLookup.cpp
+++ b/clang/lib/Sema/SemaLookup.cpp
@@ -3543,10 +3543,13 @@ static void LookupVisibleDecls(DeclContext *Ctx, LookupResult &Result,
if (CXXRecordDecl *Class = dyn_cast<CXXRecordDecl>(Ctx))
Result.getSema().ForceDeclarationOfImplicitMembers(Class);
+ // We sometimes skip loading namespace-level results (they tend to be huge).
+ bool Load = LoadExternal ||
+ !(isa<TranslationUnitDecl>(Ctx) || isa<NamespaceDecl>(Ctx));
// Enumerate all of the results in this context.
for (DeclContextLookupResult R :
- LoadExternal ? Ctx->lookups()
- : Ctx->noload_lookups(/*PreserveInternalState=*/false)) {
+ Load ? Ctx->lookups()
+ : Ctx->noload_lookups(/*PreserveInternalState=*/false)) {
for (auto *D : R) {
if (auto *ND = Result.getAcceptableDecl(D)) {
Consumer.FoundDecl(ND, Visited.checkHidden(ND), Ctx, InBaseClass);
OpenPOWER on IntegriCloud