diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2021-05-28 16:38:07 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2021-06-17 06:13:37 +0000 |
commit | 072958c3b090338356d61d63add9e2ebc73a6463 (patch) | |
tree | e9c4c72f0195ebe92205bdefb939c63ce29fe923 | |
parent | 3e5621428ba44212c1e8f386090c225bc7fc5b4a (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.cpp | 6 | ||||
-rw-r--r-- | src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp | 1 |
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); |