Improved LookupContext::fullyQualifiedName().

This commit is contained in:
Roberto Raggi
2010-05-14 15:10:28 +02:00
parent ca1d1259c6
commit 81d7ac2d69

View File

@@ -42,7 +42,6 @@
#include <QtDebug>
namespace {
const bool debug = ! qgetenv("CPLUSPLUS_LOOKUPCONTEXT_DEBUG").isEmpty();
}
@@ -56,16 +55,25 @@ static void fullyQualifiedName_helper(Symbol *symbol, QList<const Name *> *names
fullyQualifiedName_helper(symbol->enclosingSymbol(), names);
if (symbol->name() && (symbol->isClass() || symbol->isNamespace())) {
if (const QualifiedNameId *q = symbol->name()->asQualifiedNameId()) {
for (unsigned i = 0; i < q->nameCount(); ++i)
names->append(q->nameAt(i));
if (symbol->name()) {
if (symbol->isClass() || symbol->isNamespace()) {
if (const QualifiedNameId *q = symbol->name()->asQualifiedNameId()) {
for (unsigned i = 0; i < q->nameCount(); ++i)
names->append(q->nameAt(i));
} else if (symbol->name()->isNameId() || symbol->name()->isTemplateNameId()) {
names->append(symbol->name());
} else if (symbol->name()->isNameId() || symbol->name()->isTemplateNameId()) {
names->append(symbol->name());
}
} else if (symbol->isFunction()) {
if (const QualifiedNameId *q = symbol->name()->asQualifiedNameId()) {
for (unsigned i = 0; i < q->nameCount() - 1; ++i)
names->append(q->nameAt(i));
}
}
}
}
bool ClassOrNamespace::CompareName::operator()(const Name *name, const Name *other) const