From fbcf0fb3bfe0a4776ed1771983d3944d6fa78e16 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Tue, 7 Feb 2023 10:38:32 +0100 Subject: [PATCH] ClangCodeModel: Fix initial processor state It is expected that the processor that is created by the provider is not running. Fixes: QTCREATORBUG-28769 Change-Id: Icef270c5f9255b97aa04fc3d0ea0cf872787bd24 Reviewed-by: Christian Kandeler --- src/plugins/clangcodemodel/clangdfollowsymbol.cpp | 9 +++++---- .../cppeditor/followsymbol_switchmethoddecldef_test.cpp | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/plugins/clangcodemodel/clangdfollowsymbol.cpp b/src/plugins/clangcodemodel/clangdfollowsymbol.cpp index 067858edef2..757ad4bf2e8 100644 --- a/src/plugins/clangcodemodel/clangdfollowsymbol.cpp +++ b/src/plugins/clangcodemodel/clangdfollowsymbol.cpp @@ -40,7 +40,7 @@ public: : m_followSymbol(followSymbol) {} void cancel() override { resetData(true); } - bool running() override { return m_followSymbol; } + bool running() override { return m_followSymbol && m_running; } void update(); void finalize(); void resetData(bool resetFollowSymbolData); @@ -51,10 +51,11 @@ private: return createProposal(false); } - IAssistProposal *createProposal(bool final) const; + IAssistProposal *createProposal(bool final); VirtualFunctionProposalItem *createEntry(const QString &name, const Link &link) const; QPointer m_followSymbol; + bool m_running = false; }; class ClangdFollowSymbol::VirtualFunctionAssistProvider : public IAssistProvider @@ -297,10 +298,10 @@ void ClangdFollowSymbol::VirtualFunctionAssistProcessor::resetData(bool resetFol m_followSymbol = nullptr; } -IAssistProposal * -ClangdFollowSymbol::VirtualFunctionAssistProcessor::createProposal(bool final) const +IAssistProposal *ClangdFollowSymbol::VirtualFunctionAssistProcessor::createProposal(bool final) { QTC_ASSERT(m_followSymbol, return nullptr); + m_running = !final; QList items; bool needsBaseDeclEntry = !m_followSymbol->d->defLinkNode.range() diff --git a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp index 57a8246620c..90ddfbdf905 100644 --- a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp +++ b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp @@ -489,7 +489,7 @@ void FollowSymbolTest::initTestCase() const QString clangdFromEnv = Utils::qtcEnvironmentVariable("QTC_CLANGD"); if (clangdFromEnv.isEmpty()) return; - ClangdSettings::setClangdFilePath(Utils::FilePath::fromString(clangdFromEnv)); + ClangdSettings::setClangdFilePath(Utils::FilePath::fromUserInput(clangdFromEnv)); const auto clangd = ClangdSettings::instance().clangdFilePath(); if (clangd.isEmpty() || !clangd.exists()) return;