diff options
author | Alexander Lohnau <alexander.lohnau@gmx.de> | 2024-01-25 16:38:08 +0100 |
---|---|---|
committer | Alexander Lohnau <alexander.lohnau@gmx.de> | 2024-01-25 18:15:21 +0100 |
commit | 71a78d6f421d7f375b136ad72c67a0f73a1edf73 (patch) | |
tree | 5916f69cf74ef7dd123ae9afcc0f778dfdb9d3a6 | |
parent | e30daaf68f8f4e3f80857dad91c87dac8ed3d9de (diff) |
reserve-candidate: Fix operator call expressions being counted as compex expressons in Qt6
-rw-r--r-- | src/checks/manuallevel/reserve-candidates.cpp | 9 | ||||
-rw-r--r-- | tests/reserve-candidates/config.json | 3 |
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" } ] } |