diff options
| author | Alexander Lohnau <alexander.lohnau@gmx.de> | 2025-11-02 08:30:28 +0100 |
|---|---|---|
| committer | Alexander Lohnau <alexander.lohnau@gmx.de> | 2025-11-06 17:52:01 +0100 |
| commit | 76212885729bf9dcfea7c198d32a15651310aceb (patch) | |
| tree | d247ce6d1070acd88ddb2f2f787582ab66f7197c | |
| parent | 81b7cf38a444f6ca7a539ceb51ada050214f3b47 (diff) | |
Fix qhash-namespace test with llvm22upstream/master
| -rw-r--r-- | src/checks/level1/qhash-namespace.cpp | 16 | ||||
| -rw-r--r-- | src/checks/level1/qhash-namespace.h | 3 |
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 |
