diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index f39df0aeeb8..2eea1c1f46d 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -1162,10 +1162,12 @@ void ClangdClient::VirtualFunctionAssistProcessor::finalize() const auto item = new CppTools::VirtualFunctionProposalItem( link, m_data->followSymbolData->openInSplit); QString text = symbol.first; - if (isOriginalLink - && (m_data->followSymbolData->defLinkNode.isPureVirtualDeclaration() - || m_data->followSymbolData->defLinkNode.isPureVirtualDefinition())) { - text += " = 0"; + if (isOriginalLink) { + item->setOrder(1000); // Ensure base declaration is on top. + if (m_data->followSymbolData->defLinkNode.isPureVirtualDeclaration() + || m_data->followSymbolData->defLinkNode.isPureVirtualDefinition()) { + text += " = 0"; + } } item->setText(text); items << item; diff --git a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp index 75f70497472..fbd23e1bd0b 100644 --- a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp +++ b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp @@ -516,8 +516,6 @@ F2TestCase::F2TestCase(CppEditorAction action, if (useClangd) QEXPECT_FAIL("allOverrides from base declaration", "FIXME: check why this fails", Abort); QCOMPARE(finalVirtualSymbolResults.size(), expectedVirtualFunctionProposal.size()); - if (useClangd) - QEXPECT_FAIL("itemOrder", "FIXME: sort items", Abort); QCOMPARE(finalVirtualSymbolResults, expectedVirtualFunctionProposal); }