diff options
author | Sam McCall <sam.mccall@gmail.com> | 2018-01-24 17:50:20 +0000 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2018-01-24 17:50:20 +0000 |
commit | abdcc613b6f7a8ff4463f3adc19cc9cc46e91d23 (patch) | |
tree | 2c53a60aeaca241b49404af8c011889729d66253 /clang/lib/Sema/SemaLookup.cpp | |
parent | cf3ad5841b7172250f237b48ffd0cace2e2184f5 (diff) | |
download | bcm5719-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.cpp | 7 |
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); |