Resolve the class-or-namespace specifiers when creating bindings for classes.

This commit is contained in:
Roberto Raggi
2010-05-10 12:30:42 +02:00
parent 139087ee5c
commit ac07b0fcef

View File

@@ -767,7 +767,17 @@ bool CreateBindings::visit(Namespace *ns)
bool CreateBindings::visit(Class *klass)
{
ClassOrNamespace *previous = enterEntity(klass);
ClassOrNamespace *previous = _currentClassOrNamespace;
ClassOrNamespace *binding = 0;
if (klass->name() && klass->name()->isQualifiedNameId())
binding = _currentClassOrNamespace->lookupClassOrNamespace(klass->name());
if (! binding)
binding = _currentClassOrNamespace->findOrCreate(klass->name());
_currentClassOrNamespace = binding;
_currentClassOrNamespace->addSymbol(klass);
for (unsigned i = 0; i < klass->baseClassCount(); ++i)
process(klass->baseClassAt(i));