aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Lohnau <alexander.lohnau@gmx.de>2024-01-25 16:38:08 +0100
committerAlexander Lohnau <alexander.lohnau@gmx.de>2024-01-25 18:15:21 +0100
commit71a78d6f421d7f375b136ad72c67a0f73a1edf73 (patch)
tree5916f69cf74ef7dd123ae9afcc0f778dfdb9d3a6
parente30daaf68f8f4e3f80857dad91c87dac8ed3d9de (diff)
reserve-candidate: Fix operator call expressions being counted as compex expressons in Qt6
-rw-r--r--src/checks/manuallevel/reserve-candidates.cpp9
-rw-r--r--tests/reserve-candidates/config.json3
2 files changed, 10 insertions, 2 deletions
diff --git a/src/checks/manuallevel/reserve-candidates.cpp b/src/checks/manuallevel/reserve-candidates.cpp
index 31f700cd..0122ddab 100644
--- a/src/checks/manuallevel/reserve-candidates.cpp
+++ b/src/checks/manuallevel/reserve-candidates.cpp
@@ -2,6 +2,7 @@
SPDX-FileCopyrightText: 2015 Klarälvdalens Datakonsult AB a KDAB Group company info@kdab.com
SPDX-FileContributor: SĂ©rgio Martins <sergio.martins@kdab.com>
SPDX-FileCopyrightText: 2015-2016 Sergio Martins <smartins@kde.org>
+ SPDX-FileCopyrightText: 2024 Alexander Lohnau <alexander.lohnau@gmx.de>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
@@ -229,6 +230,14 @@ bool ReserveCandidates::expressionIsComplex(clang::Expr *expr) const
clazy::getChilds<CallExpr>(expr, callExprs);
for (CallExpr *callExpr : callExprs) {
+ // In Qt5, this would have been a BinaryOperator. Ignore iterator unequality checks here
+ if (auto operatorCall = dyn_cast<CXXOperatorCallExpr>(callExpr)) {
+ std::string name = operatorCall->getDirectCallee()->getAsFunction()->getQualifiedNameAsString();
+ if (clazy::contains(name, "iterator::operator")) {
+ continue;
+ }
+ }
+
if (clazy::isJavaIterator(dyn_cast<CXXMemberCallExpr>(callExpr))) {
continue;
}
diff --git a/tests/reserve-candidates/config.json b/tests/reserve-candidates/config.json
index 74e85044..613d01a8 100644
--- a/tests/reserve-candidates/config.json
+++ b/tests/reserve-candidates/config.json
@@ -4,8 +4,7 @@
],
"tests": [
{
- "filename": "main.cpp",
- "qt_major_versions" : [5]
+ "filename": "main.cpp"
}
]
}