aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 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);