diff options
-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 a5efe1aaa3..5b3caf5340 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 aaf031e6a2..401a7eb39f 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); |