diff --git a/src/libs/clangsupport/tokeninfocontainer.cpp b/src/libs/clangsupport/tokeninfocontainer.cpp index 9fc65920c50..01485ce66a8 100644 --- a/src/libs/clangsupport/tokeninfocontainer.cpp +++ b/src/libs/clangsupport/tokeninfocontainer.cpp @@ -77,7 +77,6 @@ QDebug operator<<(QDebug debug, const ExtraInfo &extraInfo) debug.nospace() << "ExtraInfo(" << extraInfo.token << ", " << extraInfo.typeSpelling << ", " - << extraInfo.resultTypeSpelling << ", " << extraInfo.semanticParentTypeSpelling << ", " << extraInfo.cursorRange << ", " << extraInfo.lexicalParentIndex << ", " diff --git a/src/libs/clangsupport/tokeninfocontainer.h b/src/libs/clangsupport/tokeninfocontainer.h index 9a833e11073..d84db4e9c73 100644 --- a/src/libs/clangsupport/tokeninfocontainer.h +++ b/src/libs/clangsupport/tokeninfocontainer.h @@ -60,14 +60,13 @@ struct ExtraInfo , slot(false) { } - ExtraInfo(Utf8String token, Utf8String typeSpelling, Utf8String resultTypeSpelling, + ExtraInfo(Utf8String token, Utf8String typeSpelling, Utf8String semanticParentTypeSpelling, SourceRangeContainer cursorRange, int lexicalParentIndex, AccessSpecifier accessSpecifier, StorageClass storageClass, bool isIdentifier, bool isInclusion, bool isDeclaration, bool isDefinition, bool isSignal, bool isSlot) : token(token) , typeSpelling(typeSpelling) - , resultTypeSpelling(resultTypeSpelling) , semanticParentTypeSpelling(semanticParentTypeSpelling) , cursorRange(cursorRange) , lexicalParentIndex(lexicalParentIndex) @@ -83,7 +82,6 @@ struct ExtraInfo } Utf8String token; Utf8String typeSpelling; - Utf8String resultTypeSpelling; Utf8String semanticParentTypeSpelling; SourceRangeContainer cursorRange; int lexicalParentIndex = -1; @@ -183,7 +181,6 @@ inline QDataStream &operator<<(QDataStream &out, const ExtraInfo &extraInfo) { out << extraInfo.token; out << extraInfo.typeSpelling; - out << extraInfo.resultTypeSpelling; out << extraInfo.semanticParentTypeSpelling; out << extraInfo.cursorRange; out << extraInfo.lexicalParentIndex; @@ -202,7 +199,6 @@ inline QDataStream &operator>>(QDataStream &in, ExtraInfo &extraInfo) { in >> extraInfo.token; in >> extraInfo.typeSpelling; - in >> extraInfo.resultTypeSpelling; in >> extraInfo.semanticParentTypeSpelling; in >> extraInfo.cursorRange; in >> extraInfo.lexicalParentIndex; @@ -240,7 +236,6 @@ inline bool operator==(const ExtraInfo &first, const ExtraInfo &second) { return first.token == second.token && first.typeSpelling == second.typeSpelling - && first.resultTypeSpelling == second.resultTypeSpelling && first.semanticParentTypeSpelling == second.semanticParentTypeSpelling && first.cursorRange == second.cursorRange && first.lexicalParentIndex == second.lexicalParentIndex diff --git a/src/plugins/clangcodemodel/clangcurrentdocumentfilter.cpp b/src/plugins/clangcodemodel/clangcurrentdocumentfilter.cpp index 76c4474b039..3b05722d6f8 100644 --- a/src/plugins/clangcodemodel/clangcurrentdocumentfilter.cpp +++ b/src/plugins/clangcodemodel/clangcurrentdocumentfilter.cpp @@ -66,11 +66,9 @@ ClangCurrentDocumentFilter::ClangCurrentDocumentFilter() Qt::QueuedConnection); } -static QString addResultTypeToFunctionSignature(const QString &signature, - const ClangBackEnd::ExtraInfo &extraInfo) +static QString addType(const QString &signature, const ClangBackEnd::ExtraInfo &extraInfo) { - return signature + extraInfo.typeSpelling.toString() + QLatin1String(" -> ", 4) - + extraInfo.resultTypeSpelling.toString(); + return signature + QLatin1String(" -> ", 4) + extraInfo.typeSpelling.toString(); } static QString addTypeToVariableName(const QString &name, const ClangBackEnd::ExtraInfo &extraInfo) @@ -89,7 +87,7 @@ static Core::LocatorFilterEntry makeEntry(Core::ILocatorFilter *filter, ClangBackEnd::HighlightingType mainType = info.types.mainHighlightingType; if (mainType == ClangBackEnd::HighlightingType::VirtualFunction || mainType == ClangBackEnd::HighlightingType::Function) { - displayName = addResultTypeToFunctionSignature(displayName, extraInfo); + displayName = addType(displayName, extraInfo); extra = extraInfo.semanticParentTypeSpelling.toString(); } else if (mainType == ClangBackEnd::HighlightingType::GlobalVariable || mainType == ClangBackEnd::HighlightingType::Field diff --git a/src/plugins/clangcodemodel/clangoverviewmodel.cpp b/src/plugins/clangcodemodel/clangoverviewmodel.cpp index 70982073bec..655005bc2c4 100644 --- a/src/plugins/clangcodemodel/clangoverviewmodel.cpp +++ b/src/plugins/clangcodemodel/clangoverviewmodel.cpp @@ -86,14 +86,7 @@ void buildTree(const TokenContainers &containers, addFirstItem(root); } -static QString addResultTypeToFunctionSignature(const QString &signature, - const ClangBackEnd::ExtraInfo &extraInfo) -{ - return signature + extraInfo.typeSpelling.toString() + QLatin1String(" -> ", 4) - + extraInfo.resultTypeSpelling.toString(); -} - -static QString addTypeToVariableName(const QString &name, const ClangBackEnd::ExtraInfo &extraInfo) +static QString addType(const QString &name, const ClangBackEnd::ExtraInfo &extraInfo) { return name + QLatin1String(" -> ", 4) + extraInfo.typeSpelling.toString(); } @@ -116,11 +109,11 @@ QVariant TokenTreeItem::data(int column, int role) const if (mainType == ClangBackEnd::HighlightingType::VirtualFunction || mainType == ClangBackEnd::HighlightingType::Function) { - name = addResultTypeToFunctionSignature(name, token.extraInfo); + name = addType(name, token.extraInfo); } else if (mainType == ClangBackEnd::HighlightingType::GlobalVariable || mainType == ClangBackEnd::HighlightingType::Field || mainType == ClangBackEnd::HighlightingType::QtProperty) { - name = addTypeToVariableName(name, token.extraInfo); + name = addType(name, token.extraInfo); if (token.types.mixinHighlightingTypes.contains( ClangBackEnd::HighlightingType::ObjectiveCProperty)) { name = QLatin1String("@property ") + name; diff --git a/src/tools/clangbackend/source/fulltokeninfo.cpp b/src/tools/clangbackend/source/fulltokeninfo.cpp index 36b55f04007..36fabc6cd2e 100644 --- a/src/tools/clangbackend/source/fulltokeninfo.cpp +++ b/src/tools/clangbackend/source/fulltokeninfo.cpp @@ -66,15 +66,9 @@ void FullTokenInfo::updateTypeSpelling(const Cursor &cursor, bool functionLike) if (!functionLike) return; Type type = cursor.type().canonical(); - m_extraInfo.resultTypeSpelling = type.resultType().utf8Spelling(); - bool hasSpaceAfterReturnType = false; - if (m_extraInfo.resultTypeSpelling.byteSize() < m_extraInfo.typeSpelling.byteSize()) { - const char *data = m_extraInfo.typeSpelling.constData(); - hasSpaceAfterReturnType = (data[m_extraInfo.resultTypeSpelling.byteSize()] == ' '); - } - m_extraInfo.typeSpelling - = m_extraInfo.typeSpelling.mid(m_extraInfo.resultTypeSpelling.byteSize() - + (hasSpaceAfterReturnType ? 1 : 0)); + m_extraInfo.token = cursor.displayName(); + // On the client side full type is typeSpelling + token. + m_extraInfo.typeSpelling = type.resultType().utf8Spelling(); } static Utf8String propertyParentSpelling(CXTranslationUnit cxTranslationUnit, diff --git a/tests/unit/unittest/gtest-creator-printing.cpp b/tests/unit/unittest/gtest-creator-printing.cpp index 9475235485d..9945b3a1de9 100644 --- a/tests/unit/unittest/gtest-creator-printing.cpp +++ b/tests/unit/unittest/gtest-creator-printing.cpp @@ -556,7 +556,6 @@ std::ostream &operator<<(std::ostream &os, const ExtraInfo &extraInfo) os << "(" << extraInfo.token << ", " << extraInfo.typeSpelling << ", " - << extraInfo.resultTypeSpelling << ", " << extraInfo.semanticParentTypeSpelling << ", " << static_cast(extraInfo.accessSpecifier) << ", " << static_cast(extraInfo.storageClass) << ", "