aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Lohnau <alexander.lohnau@gmx.de>2025-11-02 08:30:28 +0100
committerAlexander Lohnau <alexander.lohnau@gmx.de>2025-11-06 17:52:01 +0100
commit76212885729bf9dcfea7c198d32a15651310aceb (patch)
treed247ce6d1070acd88ddb2f2f787582ab66f7197c
parent81b7cf38a444f6ca7a539ceb51ada050214f3b47 (diff)
Fix qhash-namespace test with llvm22upstream/master
-rw-r--r--src/checks/level1/qhash-namespace.cpp16
-rw-r--r--src/checks/level1/qhash-namespace.h3
2 files changed, 15 insertions, 4 deletions
diff --git a/src/checks/level1/qhash-namespace.cpp b/src/checks/level1/qhash-namespace.cpp
index ef29711b..4b397fc3 100644
--- a/src/checks/level1/qhash-namespace.cpp
+++ b/src/checks/level1/qhash-namespace.cpp
@@ -18,6 +18,15 @@
using namespace clang;
+std::string QHashNamespace::fullyQualifiedParamName(clang::ParmVarDecl *firstArg)
+{
+ if (auto *typePtr = firstArg->getType().getTypePtr()->getAsTagDecl()) {
+ return typePtr->getQualifiedNameAsString();
+ }
+ // Fallback, should not happen
+ return firstArg->getType().getAsString();
+}
+
void QHashNamespace::VisitDecl(clang::Decl *decl)
{
auto *func = dyn_cast<FunctionDecl>(decl);
@@ -34,13 +43,12 @@ void QHashNamespace::VisitDecl(clang::Decl *decl)
const std::string argumentNSstr = argumentNS->getQualifiedNameAsString();
const std::string qhashNSstr = qHashNS->getQualifiedNameAsString();
if (argumentNSstr != qhashNSstr) {
- msg = "Move qHash(" + clazy::simpleTypeName(firstArg->getType(), lo()) + ") to " + argumentNSstr + " namespace for ADL lookup";
+ msg = "Move qHash(" + fullyQualifiedParamName(firstArg) + ") to " + argumentNSstr + " namespace for ADL lookup";
}
} else if (qHashNS && !argumentNS) {
- msg = "Move qHash(" + clazy::simpleTypeName(firstArg->getType(), lo()) + ") out of namespace " + qHashNS->getQualifiedNameAsString();
+ msg = "Move qHash(" + fullyQualifiedParamName(firstArg) + ") out of namespace " + qHashNS->getQualifiedNameAsString();
} else if (!qHashNS && argumentNS) {
- msg =
- "Move qHash(" + clazy::simpleTypeName(firstArg->getType(), lo()) + ") into " + argumentNS->getQualifiedNameAsString() + " namespace for ADL lookup";
+ msg = "Move qHash(" + fullyQualifiedParamName(firstArg) + ") into " + argumentNS->getQualifiedNameAsString() + " namespace for ADL lookup";
}
if (!msg.empty()) {
diff --git a/src/checks/level1/qhash-namespace.h b/src/checks/level1/qhash-namespace.h
index 0bedd50c..c30adb25 100644
--- a/src/checks/level1/qhash-namespace.h
+++ b/src/checks/level1/qhash-namespace.h
@@ -17,6 +17,9 @@ class QHashNamespace : public CheckBase
public:
using CheckBase::CheckBase;
void VisitDecl(clang::Decl *decl) override;
+
+private:
+ std::string fullyQualifiedParamName(clang::ParmVarDecl *firstArg);
};
#endif