diff options
author | Topi Reinio <topi.reinio@qt.io> | 2022-03-23 15:53:00 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2022-03-28 12:34:30 +0000 |
commit | 62fcb6dc5e663ab1620015874483a3fdfa6b0c66 (patch) | |
tree | 998502e2f22f881ab927c07a9134ae61bfbd3840 | |
parent | ff16e410259ee6540a6f6afd44bb2e8c91149a20 (diff) |
qdoc: ClangCodeParser: Consider ref-qualifiers when searching for nodes
findNodeForCursor() did not consider ref-qualifiers when comparing the
signatures of FunctionNode candidates. This resulted in ref-qualified
overloads to be masked by other overloads in certain cases.
Fixes: QTBUG-101461
Change-Id: Iac02d0840339c605cdc5915f25066fe0f39ae780
Reviewed-by: Luca Di Sera <luca.disera@qt.io>
(cherry picked from commit cb36a147c1f71575ea0861fb953fb6ad6684b912)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/qdoc/clangcodeparser.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/qdoc/clangcodeparser.cpp b/src/qdoc/clangcodeparser.cpp index 2364981a1..199a3b8fe 100644 --- a/src/qdoc/clangcodeparser.cpp +++ b/src/qdoc/clangcodeparser.cpp @@ -335,6 +335,11 @@ static Node *findNodeForCursor(QDocDatabase *qdb, CXCursor cur) continue; if (isVariadic && parameters.last().type() != QLatin1String("...")) continue; + if (fn->isRef() != (clang_Type_getCXXRefQualifier(funcType) == CXRefQualifier_LValue)) + continue; + if (fn->isRefRef() != (clang_Type_getCXXRefQualifier(funcType) == CXRefQualifier_RValue)) + continue; + bool different = false; for (int i = 0; i < numArg; ++i) { CXType argType = clang_getArgType(funcType, i); |