C++: fix code completion when 'using' declaration inside function

Looking for using declaration when lookup a type

Task-number: QTCREATORBUG-2668
Change-Id: I11600c5be262840472dd4c9e72334760a35aa4a0
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
Przemyslaw Gorszkowski
2013-04-26 14:54:49 +02:00
committed by Nikolai Kosjar
parent 6441c258e6
commit 64d80150fa
3 changed files with 144 additions and 0 deletions

View File

@@ -309,6 +309,15 @@ ClassOrNamespace *LookupContext::lookupType(const Name *name, Scope *scope,
return lookupType(namedTy->name(), scope);
}
}
} else if (UsingDeclaration *ud = m->asUsingDeclaration()) {
if (name->isNameId()) {
if (const QualifiedNameId *q = ud->name()->asQualifiedNameId()) {
if (q->name()->isEqualTo(name)) {
return bindings()->globalNamespace()->lookupType(q);
}
}
}
}
}
return lookupType(name, scope->enclosingScope());