From b58ca33ff6627d146278d45a6df23a34172a73aa Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Mon, 12 Oct 2020 15:19:29 +0200 Subject: CppTools: Categorize the delete operator as a write access ... in the "Find Usages" results. Change-Id: Ib399bf762c717b7d4439be26b9180574aefce7e3 Reviewed-by: Christian Stenger --- src/libs/cplusplus/FindUsages.cpp | 2 ++ tests/auto/cplusplus/findusages/tst_findusages.cpp | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libs/cplusplus/FindUsages.cpp b/src/libs/cplusplus/FindUsages.cpp index bdd1381f37..1685368817 100644 --- a/src/libs/cplusplus/FindUsages.cpp +++ b/src/libs/cplusplus/FindUsages.cpp @@ -348,6 +348,8 @@ Usage::Type FindUsages::getType(int line, int column, int tokenIndex) } if ((*it)->asCall()) return checkPotentialWrite(getUsageTypeForCall(it), it + 1); + if ((*it)->asDeleteExpression()) + return Usage::Type::Write; if (const auto binExpr = (*it)->asBinaryExpression()) { if (binExpr->left_expression == *(it - 1) && isAssignment(binExpr->binary_op_token)) return checkPotentialWrite(Usage::Type::Write, it + 1); diff --git a/tests/auto/cplusplus/findusages/tst_findusages.cpp b/tests/auto/cplusplus/findusages/tst_findusages.cpp index 185d5cc554..d67033a905 100644 --- a/tests/auto/cplusplus/findusages/tst_findusages.cpp +++ b/tests/auto/cplusplus/findusages/tst_findusages.cpp @@ -2081,6 +2081,7 @@ int main() s.n.constFunc(); s.n.nonConstFunc(); s.n.constFunc(s.value); + delete s.p; } )"; @@ -2165,7 +2166,7 @@ int main() QVERIFY(varS); QCOMPARE(varS->name()->identifier()->chars(), "s"); find(varS); - QCOMPARE(find.usages().size(), 30); + QCOMPARE(find.usages().size(), 31); QCOMPARE(find.usages().at(0).type, Usage::Type::Declaration); QCOMPARE(find.usages().at(1).type, Usage::Type::WritableRef); QCOMPARE(find.usages().at(2).type, Usage::Type::WritableRef); @@ -2184,6 +2185,7 @@ int main() QCOMPARE(find.usages().at(15).type, Usage::Type::WritableRef); QCOMPARE(find.usages().at(16).type, Usage::Type::Read); QCOMPARE(find.usages().at(17).type, Usage::Type::Read); + QCOMPARE(find.usages().at(18).type, Usage::Type::Write); // Direct access to struct variable QCOMPARE(find.usages().at(18).type, Usage::Type::Write); -- cgit v1.2.3