From a5ba33cbeb07f40b2567f57aeeac2ecac6929fd4 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 26 May 2021 17:24:18 +0200 Subject: [PATCH] CppEditor: Add second "Find References" Action This one includes access type categorization, while the "normal" one does not. We need this now, because with clangd, the categorization is too slow to enable it by default. Change-Id: I2eb4608630d34452ae28f0836befd5d9053f42bf Reviewed-by: David Schulz --- src/libs/cplusplus/FindUsages.cpp | 8 +- src/libs/cplusplus/FindUsages.h | 4 +- src/plugins/clangcodemodel/clangdclient.cpp | 6 +- .../clangcodemodel/test/clangdtests.cpp | 1 + src/plugins/cppeditor/cppeditorplugin.cpp | 30 +++++-- src/plugins/cpptools/cppcodemodelsettings.h | 4 + src/plugins/cpptools/cppfindreferences.cpp | 28 ++++--- src/plugins/cpptools/cppfindreferences.h | 3 +- .../cplusplus/findusages/tst_findusages.cpp | 82 +++++++++---------- 9 files changed, 102 insertions(+), 64 deletions(-) diff --git a/src/libs/cplusplus/FindUsages.cpp b/src/libs/cplusplus/FindUsages.cpp index b0835b7c0ae..f4fbecd0798 100644 --- a/src/libs/cplusplus/FindUsages.cpp +++ b/src/libs/cplusplus/FindUsages.cpp @@ -45,13 +45,15 @@ using namespace CPlusPlus; -FindUsages::FindUsages(const QByteArray &originalSource, Document::Ptr doc, const Snapshot &snapshot) +FindUsages::FindUsages(const QByteArray &originalSource, Document::Ptr doc, + const Snapshot &snapshot, bool categorize) : ASTVisitor(doc->translationUnit()), _doc(doc), _snapshot(snapshot), _context(doc, snapshot), _originalSource(originalSource), - _source(_doc->utf8Source()) + _source(_doc->utf8Source()), + _categorize(categorize) { _snapshot.insert(_doc); typeofExpression.init(_doc, _snapshot, _context.bindings()); @@ -465,6 +467,8 @@ private: Usage::Type FindUsages::getType(int line, int column, int tokenIndex) { + if (!_categorize) + return Usage::Type::Other; return GetUsageType(this, ASTPath(_doc)(line, column), tokenIndex).getUsageType(); } diff --git a/src/libs/cplusplus/FindUsages.h b/src/libs/cplusplus/FindUsages.h index feddd3b58bd..87d1cbaef52 100644 --- a/src/libs/cplusplus/FindUsages.h +++ b/src/libs/cplusplus/FindUsages.h @@ -56,7 +56,8 @@ public: class CPLUSPLUS_EXPORT FindUsages: protected ASTVisitor { public: - FindUsages(const QByteArray &originalSource, Document::Ptr doc, const Snapshot &snapshot); + FindUsages(const QByteArray &originalSource, Document::Ptr doc, const Snapshot &snapshot, + bool categorize); FindUsages(const LookupContext &context); void operator()(Symbol *symbol); @@ -302,6 +303,7 @@ private: QSet _processed; TypeOfExpression typeofExpression; Scope *_currentScope = nullptr; + const bool _categorize = false; class GetUsageType; }; diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index 2e329a2f6f2..e854df35c41 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -386,6 +386,7 @@ public: Utils::optional replacementData; quint64 key; bool canceled = false; + bool categorize = CppTools::codeModelSettings()->categorizeFindReferences(); }; using SymbolData = QPair; @@ -594,7 +595,8 @@ void ClangdClient::findUsages(TextEditor::TextDocument *document, const QTextCur replacement ? SearchResultWindow::SearchAndReplace : SearchResultWindow::SearchOnly, SearchResultWindow::PreserveCaseDisabled, "CppEditor"); - refData.search->setFilter(new CppTools::CppSearchResultFilter); + if (refData.categorize) + refData.search->setFilter(new CppTools::CppSearchResultFilter); if (refData.replacementData) { refData.search->setTextToReplace(refData.replacementData->newSymbolName); const auto renameFilesCheckBox = new QCheckBox; @@ -699,7 +701,7 @@ void ClangdClient::Private::handleFindUsagesResult(quint64 key, const QListfileData.size(); if (refData->replacementData || q->versionNumber() < QVersionNumber(13) - || refData->fileData.size() > 15) { // TODO: If we need to keep this, make it configurable. + || !refData->categorize) { qCDebug(clangdLog) << "skipping AST retrieval"; reportAllSearchResultsAndFinish(*refData); return; diff --git a/src/plugins/clangcodemodel/test/clangdtests.cpp b/src/plugins/clangcodemodel/test/clangdtests.cpp index 127e7a1e943..3e2bf4d4fb2 100644 --- a/src/plugins/clangcodemodel/test/clangdtests.cpp +++ b/src/plugins/clangcodemodel/test/clangdtests.cpp @@ -147,6 +147,7 @@ ClangdTestFindReferences::ClangdTestFindReferences() void ClangdTestFindReferences::initTestCase() { ClangdTest::initTestCase(); + CppTools::codeModelSettings()->setCategorizeFindReferences(true); connect(client(), &ClangdClient::foundReferences, this, [this](const QList &results) { if (results.isEmpty()) diff --git a/src/plugins/cppeditor/cppeditorplugin.cpp b/src/plugins/cppeditor/cppeditorplugin.cpp index a3456b1c374..ff919fd10ff 100644 --- a/src/plugins/cppeditor/cppeditorplugin.cpp +++ b/src/plugins/cppeditor/cppeditorplugin.cpp @@ -56,8 +56,10 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -81,6 +83,13 @@ namespace Internal { enum { QUICKFIX_INTERVAL = 20 }; +static CppEditorWidget *currentCppEditorWidget() +{ + if (IEditor *currentEditor = EditorManager::currentEditor()) + return qobject_cast(currentEditor->widget()); + return nullptr; +} + //////////////////////////// CppEditorFactory ///////////////////////////// class CppEditorFactory : public TextEditorFactory @@ -123,6 +132,7 @@ public: void inspectCppCodeModel(); QAction *m_reparseExternallyChangedFiles = nullptr; + QAction *m_findRefsCategorizedAction = nullptr; QAction *m_openTypeHierarchyAction = nullptr; QAction *m_openIncludeHierarchyAction = nullptr; @@ -241,6 +251,19 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST); cppToolsMenu->addAction(cmd); + d->m_findRefsCategorizedAction = new QAction(tr("Find References With Access Type"), this); + cmd = ActionManager::registerAction(d->m_findRefsCategorizedAction, + "CppEditor.FindRefsCategorized", context); + connect(d->m_findRefsCategorizedAction, &QAction::triggered, this, [] { + if (const auto w = currentCppEditorWidget()) { + codeModelSettings()->setCategorizeFindReferences(true); + w->findUsages(); + codeModelSettings()->setCategorizeFindReferences(false); + } + }); + contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST); + cppToolsMenu->addAction(cmd); + d->m_openTypeHierarchyAction = new QAction(tr("Open Type Hierarchy"), this); cmd = ActionManager::registerAction(d->m_openTypeHierarchyAction, Constants::OPEN_TYPE_HIERARCHY, context); cmd->setDefaultKeySequence(QKeySequence(useMacShortcuts ? tr("Meta+Shift+T") : tr("Ctrl+Shift+T"))); @@ -313,13 +336,6 @@ void CppEditorPlugin::extensionsInitialized() } } -static CppEditorWidget *currentCppEditorWidget() -{ - if (IEditor *currentEditor = EditorManager::currentEditor()) - return qobject_cast(currentEditor->widget()); - return nullptr; -} - void CppEditorPlugin::switchDeclarationDefinition() { if (CppEditorWidget *editorWidget = currentCppEditorWidget()) diff --git a/src/plugins/cpptools/cppcodemodelsettings.h b/src/plugins/cpptools/cppcodemodelsettings.h index 475c7dda9e7..5fc981e543a 100644 --- a/src/plugins/cpptools/cppcodemodelsettings.h +++ b/src/plugins/cpptools/cppcodemodelsettings.h @@ -85,6 +85,9 @@ public: void setClangdFilePath(const Utils::FilePath &filePath) { m_clangdFilePath = filePath; } Utils::FilePath clangdFilePath() const; + void setCategorizeFindReferences(bool categorize) { m_categorizeFindReferences = categorize; } + bool categorizeFindReferences() const { return m_categorizeFindReferences; } + signals: void clangDiagnosticConfigsInvalidated(const QVector &configId); void changed(); @@ -99,6 +102,7 @@ private: bool m_enableLowerClazyLevels = true; // For UI behavior only Utils::FilePath m_clangdFilePath; bool m_useClangd = false; + bool m_categorizeFindReferences = false; // Ephemeral! }; } // namespace CppTools diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp index e93fc545ead..fe086548be6 100644 --- a/src/plugins/cpptools/cppfindreferences.cpp +++ b/src/plugins/cpptools/cppfindreferences.cpp @@ -25,9 +25,11 @@ #include "cppfindreferences.h" +#include "cppcodemodelsettings.h" #include "cppfilesettingspage.h" #include "cpptoolsconstants.h" #include "cppmodelmanager.h" +#include "cpptoolsreuse.h" #include "cppworkingcopy.h" #include @@ -295,6 +297,7 @@ class ProcessFile CPlusPlus::Document::Ptr symbolDocument; CPlusPlus::Symbol *symbol; QFutureInterface *future; + const bool categorize; public: // needed by QtConcurrent @@ -305,12 +308,14 @@ public: const CPlusPlus::Snapshot snapshot, CPlusPlus::Document::Ptr symbolDocument, CPlusPlus::Symbol *symbol, - QFutureInterface *future) + QFutureInterface *future, + bool categorize) : workingCopy(workingCopy), snapshot(snapshot), symbolDocument(symbolDocument), symbol(symbol), - future(future) + future(future), + categorize(categorize) { } QList operator()(const Utils::FilePath &fileName) @@ -342,7 +347,7 @@ public: if (doc != symbolDocument) doc->check(); - CPlusPlus::FindUsages process(unpreprocessedSource, doc, snapshot); + CPlusPlus::FindUsages process(unpreprocessedSource, doc, snapshot, categorize); process(symbol); usages = process.usages(); @@ -395,7 +400,8 @@ QList CppFindReferences::references(CPlusPlus::Symbol *symbol, static void find_helper(QFutureInterface &future, const WorkingCopy workingCopy, const CPlusPlus::LookupContext &context, - CPlusPlus::Symbol *symbol) + CPlusPlus::Symbol *symbol, + bool categorize) { const CPlusPlus::Identifier *symbolId = symbol->identifier(); QTC_ASSERT(symbolId != nullptr, return); @@ -428,7 +434,7 @@ static void find_helper(QFutureInterface &future, future.setProgressRange(0, files.size()); - ProcessFile process(workingCopy, snapshot, context.thisDocument(), symbol, &future); + ProcessFile process(workingCopy, snapshot, context.thisDocument(), symbol, &future, categorize); UpdateUI reduce(&future); // This thread waits for blockingMappedReduced to finish, so reduce the pool's used thread count // so the blockingMappedReduced can use one more thread, and increase it again afterwards. @@ -458,7 +464,8 @@ void CppFindReferences::findUsages(CPlusPlus::Symbol *symbol, SearchResultWindow::PreserveCaseDisabled, QLatin1String("CppEditor")); search->setTextToReplace(replacement); - search->setFilter(new CppSearchResultFilter); + if (codeModelSettings()->categorizeFindReferences()) + search->setFilter(new CppSearchResultFilter); auto renameFilesCheckBox = new QCheckBox(); renameFilesCheckBox->setVisible(false); search->setAdditionalReplaceWidget(renameFilesCheckBox); @@ -469,6 +476,7 @@ void CppFindReferences::findUsages(CPlusPlus::Symbol *symbol, CppFindReferencesParameters parameters; parameters.symbolId = fullIdForSymbol(symbol); parameters.symbolFileName = QByteArray(symbol->fileName()); + parameters.categorize = codeModelSettings()->categorizeFindReferences(); if (symbol->isClass() || symbol->isForwardClassDeclaration()) { CPlusPlus::Overview overview; @@ -477,7 +485,7 @@ void CppFindReferences::findUsages(CPlusPlus::Symbol *symbol, } search->setUserData(QVariant::fromValue(parameters)); - findAll_helper(search, symbol, context); + findAll_helper(search, symbol, context, codeModelSettings()->categorizeFindReferences()); } void CppFindReferences::renameUsages(CPlusPlus::Symbol *symbol, @@ -492,7 +500,7 @@ void CppFindReferences::renameUsages(CPlusPlus::Symbol *symbol, } void CppFindReferences::findAll_helper(SearchResult *search, CPlusPlus::Symbol *symbol, - const CPlusPlus::LookupContext &context) + const CPlusPlus::LookupContext &context, bool categorize) { if (!(symbol && symbol->identifier())) { search->finishSearch(false); @@ -507,7 +515,7 @@ void CppFindReferences::findAll_helper(SearchResult *search, CPlusPlus::Symbol * const WorkingCopy workingCopy = m_modelManager->workingCopy(); QFuture result; result = Utils::runAsync(m_modelManager->sharedThreadPool(), find_helper, - workingCopy, context, symbol); + workingCopy, context, symbol, categorize); createWatcher(result, search); FutureProgress *progress = ProgressManager::addTask(result, tr("Searching for Usages"), @@ -553,7 +561,7 @@ void CppFindReferences::searchAgain() search->finishSearch(false); return; } - findAll_helper(search, symbol, context); + findAll_helper(search, symbol, context, parameters.categorize); } namespace { diff --git a/src/plugins/cpptools/cppfindreferences.h b/src/plugins/cpptools/cppfindreferences.h index 8d74c2ddd34..0e365332417 100644 --- a/src/plugins/cpptools/cppfindreferences.h +++ b/src/plugins/cpptools/cppfindreferences.h @@ -75,6 +75,7 @@ public: QByteArray symbolFileName; QString prettySymbolName; QVector filesToRename; + bool categorize = false; }; class CppFindReferences: public QObject @@ -104,7 +105,7 @@ private: void findMacroUses(const CPlusPlus::Macro ¯o, const QString &replacement, bool replace); void findAll_helper(Core::SearchResult *search, CPlusPlus::Symbol *symbol, - const CPlusPlus::LookupContext &context); + const CPlusPlus::LookupContext &context, bool categorize); void createWatcher(const QFuture &future, Core::SearchResult *search); CPlusPlus::Symbol *findSymbol(const CppFindReferencesParameters ¶meters, const CPlusPlus::Snapshot &snapshot, CPlusPlus::LookupContext *context); diff --git a/tests/auto/cplusplus/findusages/tst_findusages.cpp b/tests/auto/cplusplus/findusages/tst_findusages.cpp index c1ce7780e88..cee57808e61 100644 --- a/tests/auto/cplusplus/findusages/tst_findusages.cpp +++ b/tests/auto/cplusplus/findusages/tst_findusages.cpp @@ -175,7 +175,7 @@ void tst_FindUsages::inlineMethod() QVERIFY(arg); QCOMPARE(arg->identifier()->chars(), "arg"); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(arg); QCOMPARE(findUsages.usages().size(), 2); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Declaration); @@ -210,7 +210,7 @@ void tst_FindUsages::lambdaCaptureByValue() QVERIFY(d); QCOMPARE(d->name()->identifier()->chars(), "test"); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(d); QCOMPARE(findUsages.usages().size(), 3); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Declaration); @@ -245,7 +245,7 @@ void tst_FindUsages::lambdaCaptureByReference() QVERIFY(d); QCOMPARE(d->name()->identifier()->chars(), "test"); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(d); QCOMPARE(findUsages.usages().size(), 3); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Declaration); @@ -279,7 +279,7 @@ void tst_FindUsages::shadowedNames_1() QVERIFY(d); QCOMPARE(d->name()->identifier()->chars(), "a"); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(d); QCOMPARE(findUsages.usages().size(), 2); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Declaration); @@ -314,7 +314,7 @@ void tst_FindUsages::shadowedNames_2() QVERIFY(d); QCOMPARE(d->name()->identifier()->chars(), "a"); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(d); QCOMPARE(findUsages.usages().size(), 3); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Declaration); @@ -363,7 +363,7 @@ void tst_FindUsages::staticVariables() QVERIFY(d); QCOMPARE(d->name()->identifier()->chars(), "Foo"); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(d); QCOMPARE(findUsages.usages().size(), 5); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Declaration); @@ -398,7 +398,7 @@ void foo2(int b=bar()){} // 3rd result Snapshot snapshot; snapshot.insert(doc); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(s); QCOMPARE(find.usages().size(), 3); @@ -465,7 +465,7 @@ struct Struct{ Snapshot snapshot; snapshot.insert(doc); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(memberFunctionFoo); QCOMPARE(find.usages().size(), 2); @@ -539,7 +539,7 @@ int main() { Snapshot snapshot; snapshot.insert(doc); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(sv); QCOMPARE(find.usages().size(), 7); QCOMPARE(find.usages().at(0).type, Usage::Type::Declaration); @@ -598,7 +598,7 @@ int main() Snapshot snapshot; snapshot.insert(doc); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(sv); QCOMPARE(find.usages().size(), 7); QCOMPARE(find.usages().at(0).type, Usage::Type::Declaration); @@ -663,7 +663,7 @@ void tst_FindUsages::objc_args() Argument *arg = methodImpl->argumentAt(0)->asArgument(); QCOMPARE(arg->identifier()->chars(), "arg"); - FindUsages findUsages(objcSource, doc, snapshot); + FindUsages findUsages(objcSource, doc, snapshot, true); findUsages(arg); QCOMPARE(findUsages.usages().size(), 2); QCOMPARE(findUsages.references().size(), 2); @@ -701,7 +701,7 @@ void tst_FindUsages::qproperty_1() QCOMPARE(setX_method->identifier()->chars(), "setX"); QCOMPARE(setX_method->argumentCount(), 1); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(setX_method); QCOMPARE(findUsages.usages().size(), 2); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Other); @@ -747,7 +747,7 @@ void tst_FindUsages::instantiateTemplateWithNestedClass() QVERIFY(barDeclaration); QCOMPARE(barDeclaration->name()->identifier()->chars(), "bar"); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(barDeclaration); QCOMPARE(findUsages.usages().size(), 2); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Declaration); @@ -793,7 +793,7 @@ void tst_FindUsages::operatorAsteriskOfNestedClassOfTemplateClass_QTCREATORBUG90 QVERIFY(fooDeclaration); QCOMPARE(fooDeclaration->name()->identifier()->chars(), "foo"); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(fooDeclaration); QCOMPARE(findUsages.usages().size(), 2); @@ -838,7 +838,7 @@ void tst_FindUsages::anonymousClass_QTCREATORBUG8963() QVERIFY(isNotIntDeclaration); QCOMPARE(isNotIntDeclaration->name()->identifier()->chars(), "isNotInt"); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(isNotIntDeclaration); QCOMPARE(findUsages.usages().size(), 2); @@ -881,7 +881,7 @@ void tst_FindUsages::anonymousClass_QTCREATORBUG11859() QVERIFY(fooAsMemberOfAnonymousStruct); QCOMPARE(fooAsMemberOfAnonymousStruct->name()->identifier()->chars(), "Foo"); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(fooAsStruct); QCOMPARE(findUsages.references().size(), 1); QCOMPARE(findUsages.usages().size(), 1); @@ -927,7 +927,7 @@ void tst_FindUsages::using_insideGlobalNamespace() Class *structSymbol = nsSymbol->memberAt(0)->asClass(); QVERIFY(structSymbol); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(structSymbol); QCOMPARE(findUsages.usages().size(), 3); @@ -973,7 +973,7 @@ void tst_FindUsages::using_insideNamespace() Class *structSymbol = nsSymbol->memberAt(0)->asClass(); QVERIFY(structSymbol); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(structSymbol); QCOMPARE(findUsages.usages().size(), 3); @@ -1016,7 +1016,7 @@ void tst_FindUsages::using_insideFunction() Class *structSymbol = nsSymbol->memberAt(0)->asClass(); QVERIFY(structSymbol); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(structSymbol); QCOMPARE(findUsages.usages().size(), 3); @@ -1064,7 +1064,7 @@ void tst_FindUsages::operatorArrowOfNestedClassOfTemplateClass_QTCREATORBUG9005( QVERIFY(fooDeclaration); QCOMPARE(fooDeclaration->name()->identifier()->chars(), "foo"); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(fooDeclaration); QCOMPARE(findUsages.usages().size(), 2); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Declaration); @@ -1101,7 +1101,7 @@ void tst_FindUsages::templateClassParameters() TypenameArgument *templArgument = templateClassTS->templateParameterAt(0)->asTypenameArgument(); QVERIFY(templArgument); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(templArgument); QCOMPARE(findUsages.usages().size(), 5); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Declaration); @@ -1147,7 +1147,7 @@ void tst_FindUsages::templateClass_className() QVERIFY(classTS); QCOMPARE(classTS->memberCount(), 2); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(classTS); QCOMPARE(findUsages.usages().size(), 7); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Declaration); @@ -1187,7 +1187,7 @@ void tst_FindUsages::templateFunctionParameters() TypenameArgument *templArgument = templateFunctionTS->templateParameterAt(0)->asTypenameArgument(); QVERIFY(templArgument); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(templArgument); QCOMPARE(findUsages.usages().size(), 4); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Declaration); @@ -1221,7 +1221,7 @@ void tst_FindUsages::templatedFunction_QTCREATORBUG9749() QCOMPARE(funcTempl->memberCount(), 2); Function *func = funcTempl->memberAt(1)->asFunction(); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(func); QCOMPARE(findUsages.usages().size(), 2); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Declaration); @@ -1262,7 +1262,7 @@ void tst_FindUsages::usingInDifferentNamespace_QTCREATORBUG7978() QCOMPARE(ns->memberCount(), 1); Template *templateClass = ns->memberAt(0)->asTemplate(); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(templateClass); QCOMPARE(findUsages.usages().size(), 3); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Declaration); @@ -1291,7 +1291,7 @@ void tst_FindUsages::unicodeIdentifier() Declaration *declaration = doc->globalSymbolAt(0)->asDeclaration(); QVERIFY(declaration); - FindUsages findUsages(src, doc, snapshot); + FindUsages findUsages(src, doc, snapshot, true); findUsages(declaration); const QList usages = findUsages.usages(); QCOMPARE(usages.size(), 2); @@ -1323,7 +1323,7 @@ void tst_FindUsages::inAlignas() QVERIFY(c); QCOMPARE(c->name()->identifier()->chars(), "One"); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(c); QCOMPARE(find.usages().size(), 2); QCOMPARE(find.usages()[0].type, Usage::Type::Declaration); @@ -1366,7 +1366,7 @@ void tst_FindUsages::memberAccessAsTemplate() QVERIFY(c); QCOMPARE(c->name()->identifier()->chars(), "Foo"); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(c); QCOMPARE(find.usages().size(), 2); QCOMPARE(find.usages()[0].type, Usage::Type::Declaration); @@ -1387,7 +1387,7 @@ void tst_FindUsages::memberAccessAsTemplate() QVERIFY(f); QCOMPARE(f->name()->identifier()->chars(), "templateFunc"); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(f); QCOMPARE(find.usages().size(), 2); QCOMPARE(find.usages()[0].type, Usage::Type::Declaration); @@ -1430,7 +1430,7 @@ void tst_FindUsages::variadicFunctionTemplate() QVERIFY(v); QCOMPARE(v->name()->identifier()->chars(), "value"); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(v); QCOMPARE(find.usages().size(), 4); QCOMPARE(find.usages().at(0).type, Usage::Type::Declaration); @@ -1481,7 +1481,7 @@ void tst_FindUsages::typeTemplateParameterWithDefault() QVERIFY(sv); QCOMPARE(sv->name()->identifier()->chars(), "value"); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(xv); QCOMPARE(find.usages().size(), 2); QCOMPARE(find.usages().at(0).type, Usage::Type::Declaration); @@ -1525,7 +1525,7 @@ void tst_FindUsages::resolveOrder_for_templateFunction_vs_function() QVERIFY(xv); QCOMPARE(xv->name()->identifier()->chars(), "value"); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(xv); QCOMPARE(find.usages().size(), 2); QCOMPARE(find.usages().at(0).type, Usage::Type::Declaration); @@ -1567,7 +1567,7 @@ void tst_FindUsages::templateArrowOperator_with_defaultType() QVERIFY(sv); QCOMPARE(sv->name()->identifier()->chars(), "value"); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(sv); QCOMPARE(find.usages().size(), 3); QCOMPARE(find.usages().at(0).type, Usage::Type::Declaration); @@ -1639,7 +1639,7 @@ void tst_FindUsages::templateSpecialization_with_IntArgument() QCOMPARE(sv[1]->name()->identifier()->chars(), "value"); QCOMPARE(sv[2]->name()->identifier()->chars(), "value"); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(sv[0]); QCOMPARE(find.usages().size(), 2); @@ -1726,7 +1726,7 @@ void tst_FindUsages::templateSpecialization_with_BoolArgument() QCOMPARE(sv[0]->name()->identifier()->chars(), "value"); QCOMPARE(sv[1]->name()->identifier()->chars(), "value"); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(sv[0]); QCOMPARE(find.usages().size(), 2); @@ -1802,7 +1802,7 @@ void tst_FindUsages::templatePartialSpecialization() QCOMPARE(sv[0]->name()->identifier()->chars(), "value"); QCOMPARE(sv[1]->name()->identifier()->chars(), "value"); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(sv[0]); QCOMPARE(find.usages().size(), 2); @@ -1858,7 +1858,7 @@ int main() Snapshot snapshot; snapshot.insert(doc); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); Class *s[3]; Declaration *sv[3]; @@ -1923,7 +1923,7 @@ int main(){ QVERIFY(sv); QCOMPARE(sv->name()->identifier()->chars(), "value"); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(sv); QCOMPARE(find.usages().size(), 2); QCOMPARE(find.usages().at(0).type, Usage::Type::Initialization); @@ -1968,7 +1968,7 @@ int main(){ QVERIFY(sv); QCOMPARE(sv->name()->identifier()->chars(), "value"); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(sv); QCOMPARE(find.usages().size(), 2); QCOMPARE(find.usages().at(0).type, Usage::Type::Declaration); @@ -2008,7 +2008,7 @@ int main(){} QVERIFY(sv); QCOMPARE(sv->name()->identifier()->chars(), "value"); - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(sv); QCOMPARE(find.usages().size(), 2); QCOMPARE(find.usages().at(0).type, Usage::Type::Declaration); @@ -2121,7 +2121,7 @@ int main() QCOMPARE(sv->name()->identifier()->chars(), "value"); // Access to struct member - FindUsages find(src, doc, snapshot); + FindUsages find(src, doc, snapshot, true); find(sv); QCOMPARE(find.usages().size(), 31); QCOMPARE(find.usages().at(0).type, Usage::Type::Read);