From c47312a836230e23b7af1bae05edae653dd73d25 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 23 Sep 2021 12:11:31 +0200 Subject: [PATCH] LanguageClient: Pass out a mutable Project object Callers can have legitimate reasons to use it in a non-const manner. Change-Id: Id91a4708dd95845661b291ce7cc9ee1581bdade8 Reviewed-by: David Schulz --- src/plugins/clangcodemodel/clangmodelmanagersupport.cpp | 5 +---- src/plugins/languageclient/client.cpp | 2 +- src/plugins/languageclient/client.h | 4 ++-- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp index 54d2a891e39..a2dca2aab35 100644 --- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp +++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp @@ -433,10 +433,7 @@ void ClangModelManagerSupport::watchForExternalChanges() if (client && client->state() != Client::Shutdown && client->state() != Client::ShutdownRequested && !projectIsParsing(client->project())) { - - // FIXME: Lots of const-incorrectness along the call chain of updateLanguageClient(). - const auto project = const_cast(client->project()); - + ProjectExplorer::Project * const project = client->project(); updateLanguageClient(project, CppModelManager::instance()->projectInfo(project)); } } diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 10a4fb4a31c..e65c7d81c5e 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -928,7 +928,7 @@ void Client::executeCommand(const Command &command) sendContent(ExecuteCommandRequest(ExecuteCommandParams(command))); } -const ProjectExplorer::Project *Client::project() const +ProjectExplorer::Project *Client::project() const { return m_project; } diff --git a/src/plugins/languageclient/client.h b/src/plugins/languageclient/client.h index 0f4e65879e9..f6c16e72d23 100644 --- a/src/plugins/languageclient/client.h +++ b/src/plugins/languageclient/client.h @@ -157,7 +157,7 @@ public: // workspace control virtual void setCurrentProject(ProjectExplorer::Project *project); - const ProjectExplorer::Project *project() const; + ProjectExplorer::Project *project() const; virtual void projectOpened(ProjectExplorer::Project *project); virtual void projectClosed(ProjectExplorer::Project *project); @@ -280,7 +280,7 @@ private: DocumentSymbolCache m_documentSymbolCache; HoverHandler m_hoverHandler; QHash m_highlights; - const ProjectExplorer::Project *m_project = nullptr; + ProjectExplorer::Project *m_project = nullptr; QSet m_runningAssistProcessors; SymbolSupport m_symbolSupport; ProgressManager m_progressManager;