From 81d7ac2d69dffb715066117ee5047cd8a13803b1 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 14 May 2010 15:10:28 +0200 Subject: [PATCH] Improved LookupContext::fullyQualifiedName(). --- src/libs/cplusplus/LookupContext.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index d1d8f386b9b..b6fc2e95760 100644 --- a/src/libs/cplusplus/LookupContext.cpp +++ b/src/libs/cplusplus/LookupContext.cpp @@ -42,7 +42,6 @@ #include - namespace { const bool debug = ! qgetenv("CPLUSPLUS_LOOKUPCONTEXT_DEBUG").isEmpty(); } @@ -56,16 +55,25 @@ static void fullyQualifiedName_helper(Symbol *symbol, QList *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