Handle using declarations

This commit is contained in:
Roberto Raggi
2010-05-27 16:33:18 +02:00
parent 9cde6baebc
commit 64e9f652e0
2 changed files with 16 additions and 0 deletions

View File

@@ -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())) {

View File

@@ -170,6 +170,7 @@ protected:
virtual bool visit(Function *);
virtual bool visit(BaseClass *b);
virtual bool visit(UsingNamespaceDirective *u);
virtual bool visit(UsingDeclaration *u);
virtual bool visit(NamespaceAlias *a);
virtual bool visit(ObjCClass *klass);