aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <[email protected]>2023-11-22 18:05:06 +0100
committerChristian Kandeler <[email protected]>2023-11-29 09:42:18 +0000
commit711b976294007275dd3b1327b1ddc3f4dce8c2b4 (patch)
tree95646ee212e523902b51631b07fb3c20389904cc
parent1f34461088946ac710c163c3aa4678360f06062b (diff)
CppEditor: Also rename function comments for declarations
... that are not definitions. Amends 0a058bb65717cddb3e01a44f3241c029253a1eea. Change-Id: I4ba19f915d653d05570f8cd244ea50ab40d4b9dd Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: David Schulz <[email protected]>
-rw-r--r--src/libs/cplusplus/CppDocument.cpp8
-rw-r--r--src/plugins/clangcodemodel/test/clangdtests.cpp4
-rw-r--r--src/plugins/clangcodemodel/test/data/local-references/references.cpp7
3 files changed, 17 insertions, 2 deletions
diff --git a/src/libs/cplusplus/CppDocument.cpp b/src/libs/cplusplus/CppDocument.cpp
index 6dc59bf1bf1..a45d3669d9c 100644
--- a/src/libs/cplusplus/CppDocument.cpp
+++ b/src/libs/cplusplus/CppDocument.cpp
@@ -128,7 +128,6 @@ protected:
bool visit(UsingNamespaceDirective *) override { return false; }
bool visit(UsingDeclaration *) override { return false; }
bool visit(NamespaceAlias *) override { return false; }
- bool visit(Declaration *) override { return false; }
bool visit(Argument *) override { return false; }
bool visit(TypenameArgument *) override { return false; }
bool visit(BaseClass *) override { return false; }
@@ -158,6 +157,13 @@ protected:
return true;
}
+ bool visit(Declaration *decl) override
+ {
+ if (const auto func = decl->type().type()->asFunctionType())
+ return process(func);
+ return false;
+ }
+
// Objective-C
bool visit(ObjCBaseClass *) override { return false; }
bool visit(ObjCBaseProtocol *) override { return false; }
diff --git a/src/plugins/clangcodemodel/test/clangdtests.cpp b/src/plugins/clangcodemodel/test/clangdtests.cpp
index 3978a42d1af..1919d5cfdb7 100644
--- a/src/plugins/clangcodemodel/test/clangdtests.cpp
+++ b/src/plugins/clangcodemodel/test/clangdtests.cpp
@@ -537,8 +537,10 @@ void ClangdTestLocalReferences::test_data()
QTest::newRow("overloaded operators arguments from outside") << 171 << 7
<< QList<Range>{{171, 6, 1}, {172, 6, 1}, {172, 11, 1},
{173, 6, 1}, {173, 9, 1}};
- QTest::newRow("documented function parameter") << 181 << 32
+ QTest::newRow("documented function parameter (impl)") << 181 << 32
<< QList<Range>{{177, 10, 6}, {179, 9, 6}, {181, 31, 6}, {183, 6, 6}, {184, 17, 6}};
+ QTest::newRow("documented function parameter (decl)") << 192 << 33
+ << QList<Range>{{188, 10, 6}, {190, 9, 6}, {192, 32, 6}};
}
void ClangdTestLocalReferences::test()
diff --git a/src/plugins/clangcodemodel/test/data/local-references/references.cpp b/src/plugins/clangcodemodel/test/data/local-references/references.cpp
index 1c8556581d9..693fcb0bafb 100644
--- a/src/plugins/clangcodemodel/test/data/local-references/references.cpp
+++ b/src/plugins/clangcodemodel/test/data/local-references/references.cpp
@@ -183,3 +183,10 @@ void funcWithParamComments(int param1, int param2)
if (param1 != param2)
param2 = param1;
}
+
+/*
+ * @param param1
+ * @param param2
+ * @note param1 and param2 should be the same.
+ */
+void funcWithParamComments2(int param1, int param2);