summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/LookupContext.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-06-01 12:22:07 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2010-06-01 12:22:07 +0200
commit0dfe7b9b95e0b3bff6044e4a7e70dde22506caa4 (patch)
treedaa039d2d17f33aa7801d47496edf002cee0d3bb /src/libs/cplusplus/LookupContext.cpp
parentef833690064436de7e574757641ea20314d90888 (diff)
downloadqt-creator-0dfe7b9b95e0b3bff6044e4a7e70dde22506caa4.tar.gz
Fixed unqualified name lookup.
Diffstat (limited to 'src/libs/cplusplus/LookupContext.cpp')
-rw-r--r--src/libs/cplusplus/LookupContext.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp
index 8b05abb3d4..7e352db117 100644
--- a/src/libs/cplusplus/LookupContext.cpp
+++ b/src/libs/cplusplus/LookupContext.cpp
@@ -199,7 +199,7 @@ QList<Symbol *> LookupContext::lookup(const Name *name, Scope *scope) const
if (Namespace *enclosingNamespace = u->enclosingNamespaceScope()->owner()->asNamespace()) {
if (ClassOrNamespace *b = bindings()->lookupType(enclosingNamespace)) {
if (ClassOrNamespace *uu = b->lookupType(u->name())) {
- candidates = uu->lookup(name);
+ candidates = uu->find(name);
if (! candidates.isEmpty())
return candidates;
@@ -221,7 +221,7 @@ QList<Symbol *> LookupContext::lookup(const Name *name, Scope *scope) const
if (fun->name() && fun->name()->isQualifiedNameId()) {
if (ClassOrNamespace *binding = bindings()->lookupType(fun)) {
- candidates = binding->lookup(name);
+ candidates = binding->find(name);
if (! candidates.isEmpty())
return candidates;
@@ -247,17 +247,25 @@ QList<Symbol *> LookupContext::lookup(const Name *name, Scope *scope) const
break; // it's an argument or a template parameter.
if (ClassOrNamespace *binding = bindings()->lookupType(klass)) {
- candidates = binding->lookup(name);
+ candidates = binding->find(name);
if (! candidates.isEmpty())
return candidates;
}
- } else if (scope->isNamespaceScope() || scope->isObjCClassScope() || scope->isObjCProtocolScope()) {
+ } else if (scope->isNamespaceScope()) {
if (ClassOrNamespace *binding = bindings()->lookupType(scope->owner()))
- return binding->lookup(name);
+ candidates = binding->find(name);
- break;
+ if (! candidates.isEmpty())
+ return candidates;
+
+ } else if (scope->isObjCClassScope() || scope->isObjCProtocolScope()) {
+ if (ClassOrNamespace *binding = bindings()->lookupType(scope->owner()))
+ candidates = binding->find(name);
+
+ if (! candidates.isEmpty())
+ return candidates;
}
}