diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index d8b54cdf82d..1a00de51784 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -1119,7 +1119,7 @@ void ClangdClient::Private::handleFindUsagesResult(quint64 key, const QListfileData[loc.uri()].rangesAndLineText << qMakePair(loc.range(), QString()); // TODO: Can we assume that locations for the same file are grouped? for (auto it = refData->fileData.begin(); it != refData->fileData.end(); ++it) { const QStringList lines = SymbolSupport::getFileContents(it.key().toFilePath()); diff --git a/src/plugins/clangcodemodel/test/clangdtests.cpp b/src/plugins/clangcodemodel/test/clangdtests.cpp index 5ce19e172c4..c7a33f2be6e 100644 --- a/src/plugins/clangcodemodel/test/clangdtests.cpp +++ b/src/plugins/clangcodemodel/test/clangdtests.cpp @@ -232,10 +232,11 @@ void ClangdTestFindReferences::test_data() QTest::newRow("direct member initialization") << "defs.h" << 101 << ItemList{ makeItem(5, 21, Usage::Type::Initialization), makeItem(45, 16, Usage::Type::Read)}; - // FIXME: The override gets reported twice. clangd bug? - QTest::newRow("pure virtual declaration") << "defs.h" << 420 << ItemList{ - makeItem(17, 17, Usage::Type::Declaration), makeItem(21, 9, Usage::Type::Declaration), - makeItem(21, 9, Usage::Type::Declaration)}; + ItemList pureVirtualRefs{makeItem(17, 17, Usage::Type::Declaration), + makeItem(21, 9, Usage::Type::Declaration)}; + if (client()->versionNumber() < QVersionNumber(14)) + pureVirtualRefs << pureVirtualRefs.last(); + QTest::newRow("pure virtual declaration") << "defs.h" << 420 << pureVirtualRefs; QTest::newRow("pointer variable") << "main.cpp" << 52 << ItemList{ makeItem(6, 10, Usage::Type::Initialization), makeItem(8, 4, Usage::Type::Write),