aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libs/cplusplus/FindUsages.cpp5
-rw-r--r--src/libs/cplusplus/FindUsages.h2
-rw-r--r--src/plugins/cpptools/cppfindreferences.cpp1
-rw-r--r--tests/auto/cplusplus/findusages/tst_findusages.cpp26
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);