summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-01-14 03:35:48 +0000
committerDouglas Gregor <dgregor@apple.com>2010-01-14 03:35:48 +0000
commit200c99dd1e57ef50b163456aac9d40168908325b (patch)
treef2887354fa870b958e2dd3dbc01547073f6dccf2 /clang
parent47000997193cf44b08877184cb8e8d41e2ae97d2 (diff)
downloadbcm5719-llvm-200c99dd1e57ef50b163456aac9d40168908325b.tar.gz
bcm5719-llvm-200c99dd1e57ef50b163456aac9d40168908325b.zip
Move code completion for qualified name lookup (foo::) to
LookupVisibleDecls. Also, a function does not hide another function. llvm-svn: 93421
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Sema/SemaCodeComplete.cpp3
-rw-r--r--clang/lib/Sema/SemaLookup.cpp6
2 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaCodeComplete.cpp b/clang/lib/Sema/SemaCodeComplete.cpp
index c23648dfb95..f7f5fe3b4dd 100644
--- a/clang/lib/Sema/SemaCodeComplete.cpp
+++ b/clang/lib/Sema/SemaCodeComplete.cpp
@@ -2354,7 +2354,8 @@ void Sema::CodeCompleteQualifiedId(Scope *S, const CXXScopeSpec &SS,
return;
ResultBuilder Results(*this);
- CollectMemberLookupResults(Ctx, Ctx, Results);
+ CodeCompletionDeclConsumer Consumer(Results, CurContext);
+ LookupVisibleDecls(Ctx, LookupOrdinaryName, Consumer);
// The "template" keyword can follow "::" in the grammar, but only
// put it into the grammar if the nested-name-specifier is dependent.
diff --git a/clang/lib/Sema/SemaLookup.cpp b/clang/lib/Sema/SemaLookup.cpp
index 88da7e8d5cc..d7ee9589637 100644
--- a/clang/lib/Sema/SemaLookup.cpp
+++ b/clang/lib/Sema/SemaLookup.cpp
@@ -1942,6 +1942,12 @@ NamedDecl *VisibleDeclsRecord::checkHidden(NamedDecl *ND) {
(*I)->getIdentifierNamespace() != IDNS)
continue;
+ // Functions and function templates overload rather than hide.
+ // FIXME: Look for hiding based on function signatures!
+ if ((*I)->isFunctionOrFunctionTemplate() &&
+ ND->isFunctionOrFunctionTemplate())
+ continue;
+
// We've found a declaration that hides this one.
return *I;
}
OpenPOWER on IntegriCloud