diff options
-rw-r--r-- | src/libs/cplusplus/FindUsages.cpp | 5 | ||||
-rw-r--r-- | src/libs/cplusplus/FindUsages.h | 2 | ||||
-rw-r--r-- | src/plugins/cpptools/cppfindreferences.cpp | 1 | ||||
-rw-r--r-- | tests/auto/cplusplus/findusages/tst_findusages.cpp | 26 |
4 files changed, 19 insertions, 15 deletions
diff --git a/src/libs/cplusplus/FindUsages.cpp b/src/libs/cplusplus/FindUsages.cpp index 8807fad952..95b3f266cc 100644 --- a/src/libs/cplusplus/FindUsages.cpp +++ b/src/libs/cplusplus/FindUsages.cpp @@ -383,8 +383,11 @@ Usage::Type FindUsages::getType(int line, int column, int tokenIndex) continue; } if (const auto declarator = (*it)->asDeclarator()) { - if (containsToken(declarator->core_declarator)) + if (containsToken(declarator->core_declarator)) { + if (declarator->initializer) + return Usage::Type::Initialization; return Usage::Type::Declaration; + } if (const auto decl = (*(it + 1))->asSimpleDeclaration()) { if (decl->symbols && decl->symbols->value) { return checkPotentialWrite( diff --git a/src/libs/cplusplus/FindUsages.h b/src/libs/cplusplus/FindUsages.h index a0e1130c15..48f392cfc7 100644 --- a/src/libs/cplusplus/FindUsages.h +++ b/src/libs/cplusplus/FindUsages.h @@ -39,7 +39,7 @@ namespace CPlusPlus { class CPLUSPLUS_EXPORT Usage { public: - enum class Type { Declaration, Read, Write, WritableRef, Other }; + enum class Type { Declaration, Initialization, Read, Write, WritableRef, Other }; Usage() = default; Usage(const Utils::FilePath &path, const QString &lineText, Type t, int line, int col, int len) diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp index 00d8c096e1..18438934d0 100644 --- a/src/plugins/cpptools/cppfindreferences.cpp +++ b/src/plugins/cpptools/cppfindreferences.cpp @@ -555,6 +555,7 @@ static void displayResults(SearchResult *search, QFutureWatcher<CPlusPlus::Usage switch (type) { case CPlusPlus::Usage::Type::Read: return SearchResultColor::Style::Alt1; + case CPlusPlus::Usage::Type::Initialization: case CPlusPlus::Usage::Type::Write: case CPlusPlus::Usage::Type::WritableRef: return SearchResultColor::Style::Alt2; diff --git a/tests/auto/cplusplus/findusages/tst_findusages.cpp b/tests/auto/cplusplus/findusages/tst_findusages.cpp index 214aa186c7..bb91c3a18f 100644 --- a/tests/auto/cplusplus/findusages/tst_findusages.cpp +++ b/tests/auto/cplusplus/findusages/tst_findusages.cpp @@ -367,7 +367,7 @@ void tst_FindUsages::staticVariables() findUsages(d); QCOMPARE(findUsages.usages().size(), 5); QCOMPARE(findUsages.usages().at(0).type, Usage::Type::Declaration); - QCOMPARE(findUsages.usages().at(1).type, Usage::Type::Declaration); + QCOMPARE(findUsages.usages().at(1).type, Usage::Type::Initialization); QCOMPARE(findUsages.usages().at(2).type, Usage::Type::Write); QCOMPARE(findUsages.usages().at(3).type, Usage::Type::Write); QCOMPARE(findUsages.usages().at(4).type, Usage::Type::Write); @@ -481,7 +481,7 @@ struct Struct{ find(variableFoo); QCOMPARE(find.usages().size(), 2); - QCOMPARE(find.usages()[0].type, Usage::Type::Declaration); + QCOMPARE(find.usages()[0].type, Usage::Type::Initialization); QCOMPARE(find.usages()[0].line, 5); QCOMPARE(find.usages()[0].col, 12); @@ -1652,7 +1652,7 @@ void tst_FindUsages::templateSpecialization_with_IntArgument() find(sv[1]); QCOMPARE(find.usages().size(), 2); - QCOMPARE(find.usages()[0].type, Usage::Type::Declaration); + QCOMPARE(find.usages()[0].type, Usage::Type::Initialization); QCOMPARE(find.usages()[0].line, 2); QCOMPARE(find.usages()[0].col, 15); QCOMPARE(find.usages()[1].type, Usage::Type::Read); @@ -1662,7 +1662,7 @@ void tst_FindUsages::templateSpecialization_with_IntArgument() find(sv[2]); QCOMPARE(find.usages().size(), 3); - QCOMPARE(find.usages()[0].type, Usage::Type::Declaration); + QCOMPARE(find.usages()[0].type, Usage::Type::Initialization); QCOMPARE(find.usages()[0].line, 3); QCOMPARE(find.usages()[0].col, 15); QCOMPARE(find.usages()[1].type, Usage::Type::Write); @@ -1731,7 +1731,7 @@ void tst_FindUsages::templateSpecialization_with_BoolArgument() find(sv[0]); QCOMPARE(find.usages().size(), 2); - QCOMPARE(find.usages()[0].type, Usage::Type::Declaration); + QCOMPARE(find.usages()[0].type, Usage::Type::Initialization); QCOMPARE(find.usages()[0].line, 1); QCOMPARE(find.usages()[0].col, 15); QCOMPARE(find.usages()[1].type, Usage::Type::Read); @@ -1741,7 +1741,7 @@ void tst_FindUsages::templateSpecialization_with_BoolArgument() find(sv[1]); QCOMPARE(find.usages().size(), 2); - QCOMPARE(find.usages()[0].type, Usage::Type::Declaration); + QCOMPARE(find.usages()[0].type, Usage::Type::Initialization); QCOMPARE(find.usages()[0].line, 2); QCOMPARE(find.usages()[0].col, 15); QCOMPARE(find.usages()[1].type, Usage::Type::Read); @@ -1807,7 +1807,7 @@ void tst_FindUsages::templatePartialSpecialization() find(sv[0]); QCOMPARE(find.usages().size(), 2); - QCOMPARE(find.usages()[0].type, Usage::Type::Declaration); + QCOMPARE(find.usages()[0].type, Usage::Type::Initialization); QCOMPARE(find.usages()[0].line, 1); QCOMPARE(find.usages()[0].col, 15); QCOMPARE(find.usages()[1].type, Usage::Type::Read); @@ -1817,7 +1817,7 @@ void tst_FindUsages::templatePartialSpecialization() find(sv[1]); QCOMPARE(find.usages().size(), 2); - QCOMPARE(find.usages()[0].type, Usage::Type::Declaration); + QCOMPARE(find.usages()[0].type, Usage::Type::Initialization); QCOMPARE(find.usages()[0].line, 2); QCOMPARE(find.usages()[0].col, 15); QCOMPARE(find.usages()[1].type, Usage::Type::Read); @@ -1876,17 +1876,17 @@ int main() find(sv[0]); QCOMPARE(find.usages().size(), 2); - QCOMPARE(find.usages().at(0).type, Usage::Type::Declaration); + QCOMPARE(find.usages().at(0).type, Usage::Type::Initialization); QCOMPARE(find.usages().at(1).type, Usage::Type::Read); find(sv[1]); QCOMPARE(find.usages().size(), 2); - QCOMPARE(find.usages().at(0).type, Usage::Type::Declaration); + QCOMPARE(find.usages().at(0).type, Usage::Type::Initialization); QCOMPARE(find.usages().at(1).type, Usage::Type::Read); find(sv[2]); QCOMPARE(find.usages().size(), 2); - QCOMPARE(find.usages().at(0).type, Usage::Type::Declaration); + QCOMPARE(find.usages().at(0).type, Usage::Type::Initialization); QCOMPARE(find.usages().at(1).type, Usage::Type::Read); } @@ -1926,7 +1926,7 @@ int main(){ FindUsages find(src, doc, snapshot); find(sv); QCOMPARE(find.usages().size(), 2); - QCOMPARE(find.usages().at(0).type, Usage::Type::Declaration); + QCOMPARE(find.usages().at(0).type, Usage::Type::Initialization); QCOMPARE(find.usages().at(1).type, Usage::Type::Read); } @@ -2159,7 +2159,7 @@ int main() QCOMPARE(p->name()->identifier()->chars(), "p"); find(p); QCOMPARE(find.usages().size(), 10); - QCOMPARE(find.usages().at(0).type, Usage::Type::Declaration); + QCOMPARE(find.usages().at(0).type, Usage::Type::Initialization); QCOMPARE(find.usages().at(1).type, Usage::Type::Write); QCOMPARE(find.usages().at(2).type, Usage::Type::Write); QCOMPARE(find.usages().at(3).type, Usage::Type::WritableRef); |