summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/LookupContext.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-05-27 16:33:18 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2010-05-27 16:33:18 +0200
commit64e9f652e07883c8c9c081a4b179bbbd6444b67f (patch)
tree8aada2cbaf292d76221e9f510fe6054b1d4def30 /src/libs/cplusplus/LookupContext.cpp
parent9cde6baebc85be85581e376080d1ff717176ebfa (diff)
downloadqt-creator-64e9f652e07883c8c9c081a4b179bbbd6444b67f.tar.gz
Handle using declarations
Diffstat (limited to 'src/libs/cplusplus/LookupContext.cpp')
-rw-r--r--src/libs/cplusplus/LookupContext.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp
index 5f883feab9..1a510b6bd2 100644
--- a/src/libs/cplusplus/LookupContext.cpp
+++ b/src/libs/cplusplus/LookupContext.cpp
@@ -794,6 +794,21 @@ bool CreateBindings::visit(BaseClass *b)
return false;
}
+bool CreateBindings::visit(UsingDeclaration *u)
+{
+ if (u->name()) {
+ if (const QualifiedNameId *q = u->name()->asQualifiedNameId()) {
+ if (const NameId *unqualifiedId = q->unqualifiedNameId()->asNameId()) {
+ if (ClassOrNamespace *delegate = _currentClassOrNamespace->lookupType(q)) {
+ ClassOrNamespace *b = _currentClassOrNamespace->findOrCreateType(unqualifiedId);
+ b->addUsing(delegate);
+ }
+ }
+ }
+ }
+ return false;
+}
+
bool CreateBindings::visit(UsingNamespaceDirective *u)
{
if (ClassOrNamespace *e = _currentClassOrNamespace->lookupType(u->name())) {