Fixed lookup of qualified name ids.

This commit is contained in:
Roberto Raggi
2009-10-12 14:07:01 +02:00
parent b0e58aa834
commit f7263f2333

View File

@@ -132,12 +132,15 @@ QList<Symbol *> LookupContext::resolveQualifiedNameId(QualifiedNameId *q,
{ {
QList<Symbol *> candidates; QList<Symbol *> candidates;
if (true || mode & ResolveClass) {
for (int i = 0; i < visibleScopes.size(); ++i) { for (int i = 0; i < visibleScopes.size(); ++i) {
Scope *scope = visibleScopes.at(i); Scope *scope = visibleScopes.at(i);
for (Symbol *symbol = scope->lookat(q); symbol; symbol = symbol->next()) { for (Symbol *symbol = scope->lookat(q); symbol; symbol = symbol->next()) {
if (! symbol->name()) if (! symbol->name())
continue; continue;
else if (! symbol->isClass())
continue;
QualifiedNameId *qq = symbol->name()->asQualifiedNameId(); QualifiedNameId *qq = symbol->name()->asQualifiedNameId();
@@ -165,8 +168,8 @@ QList<Symbol *> LookupContext::resolveQualifiedNameId(QualifiedNameId *q,
} }
} }
} }
}
if (candidates.isEmpty()) {
QList<Scope *> scopes; QList<Scope *> scopes;
if (q->nameCount() == 1) if (q->nameCount() == 1)
@@ -187,7 +190,6 @@ QList<Symbol *> LookupContext::resolveQualifiedNameId(QualifiedNameId *q,
} }
candidates += resolve(q->unqualifiedNameId(), expanded, mode); candidates += resolve(q->unqualifiedNameId(), expanded, mode);
}
return candidates; return candidates;
} }