diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index 4908b1c65e3e2346769e9926b215b025b9de7665..b6a9d62a6dcc6e2fc32fb504ea7e5a684ee4c682 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.