aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2021-05-28 16:38:07 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2021-06-17 06:13:37 +0000
commit072958c3b090338356d61d63add9e2ebc73a6463 (patch)
treee9c4c72f0195ebe92205bdefb939c63ce29fe923
parent3e5621428ba44212c1e8f386090c225bc7fc5b4a (diff)
ClangCodeModel: Do not include base declaration in virtual overrides
... if the cursor was on it. Change-Id: Ie0d6981e9f0d23a57c430f3aa33448e8f9002ee9 Reviewed-by: David Schulz <david.schulz@qt.io>
-rw-r--r--src/plugins/clangcodemodel/clangdclient.cpp6
-rw-r--r--src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp1
2 files changed, 5 insertions, 2 deletions
diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp
index a5efe1aaa32..5b3caf5340d 100644
--- a/src/plugins/clangcodemodel/clangdclient.cpp
+++ b/src/plugins/clangcodemodel/clangdclient.cpp
@@ -1158,7 +1158,11 @@ void ClangdClient::VirtualFunctionAssistProcessor::finalize()
QList<TextEditor::AssistProposalItemInterface *> items;
for (const SymbolData &symbol : qAsConst(m_data->followSymbolData->symbolsToDisplay)) {
Utils::Link link = symbol.second;
- const bool isOriginalLink = m_data->followSymbolData->defLink == symbol.second;
+ const bool isOriginalLink = m_data->followSymbolData->defLink == link;
+ if (isOriginalLink && m_data->followSymbolData->defLinkNode.range()
+ .contains(Position(m_data->followSymbolData->cursor))) {
+ continue;
+ }
if (!isOriginalLink) {
const Utils::Link defLink = m_data->followSymbolData->declDefMap.value(symbol.second);
if (defLink.hasValidTarget())
diff --git a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp
index aaf031e6a24..401a7eb39fa 100644
--- a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp
+++ b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp
@@ -505,7 +505,6 @@ F2TestCase::F2TestCase(CppEditorAction action,
}
QCOMPARE(immediateVirtualSymbolResults, expectedImmediate);
if (useClangd) {
- QEXPECT_FAIL("allOverrides from base declaration", "FIXME: too many results", Abort);
QEXPECT_FAIL("noSiblings_references", "FIXME: too many results", Abort);
QEXPECT_FAIL("noSiblings_pointers", "FIXME: too many results", Abort);
QEXPECT_FAIL("noSiblings_noBaseExpression", "FIXME: too many results", Abort);