summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2011-11-22 10:51:54 +0100
committerChristian Kamm <christian.d.kamm@nokia.com>2011-11-22 14:14:11 +0100
commit2f58fb95bc3f145e5cc5660a21b7103215d308cc (patch)
treeb0f9d601616c36602dc9b5b456956099216cd9d9 /src/libs/cplusplus
parenteaf4b5be5372ba49430668b52a7c720c1ffccfc0 (diff)
downloadqt-creator-2f58fb95bc3f145e5cc5660a21b7103215d308cc.tar.gz
C++: Fix completion for namespace aliases at global or namespace scope.
Task-number: QTCREATORBUG-166 Change-Id: Ic0fe4067caad37e51f7e253fd6678a6680350870 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Diffstat (limited to 'src/libs/cplusplus')
-rw-r--r--src/libs/cplusplus/LookupContext.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp
index 4908b1c65e..b6a9d62a6d 100644
--- a/src/libs/cplusplus/LookupContext.cpp
+++ b/src/libs/cplusplus/LookupContext.cpp
@@ -518,6 +518,14 @@ void CreateBindings::lookupInScope(const Name *name, Scope *scope,
item.setDeclaration(s);
item.setBinding(binding);
+ if (s->asNamespaceAlias() && binding) {
+ ClassOrNamespace *targetNamespaceBinding = binding->lookupType(name);
+ if (targetNamespaceBinding && targetNamespaceBinding->symbols().size() == 1) {
+ Symbol *resolvedSymbol = targetNamespaceBinding->symbols().first();
+ item.setType(resolvedSymbol->type()); // override the type
+ }
+ }
+
if (templateId && (s->isDeclaration() || s->isFunction())) {
FullySpecifiedType ty = DeprecatedGenTemplateInstance::instantiate(templateId, s, _control);
item.setType(ty); // override the type.