diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 9991cb1c88c..f4fa4d6319f 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -111,8 +111,9 @@ Client::~Client() using namespace TextEditor; // FIXME: instead of replacing the completion provider in the text document store the // completion provider as a prioritised list in the text document - for (auto it = m_resetAssistProvider.cbegin(); it != m_resetAssistProvider.cend(); ++it) - resetAssistProviders(it.key()); + // temporary container needed since m_resetAssistProvider is changed in resetAssistProviders + for (TextDocument *document : m_resetAssistProvider.keys()) + resetAssistProviders(document); const QList &editors = Core::DocumentModel::editorsForOpenedDocuments(); for (Core::IEditor *editor : editors) { if (auto textEditor = qobject_cast(editor)) { diff --git a/src/plugins/languageclient/diagnosticmanager.cpp b/src/plugins/languageclient/diagnosticmanager.cpp index 233353a9f71..802ff4a58fd 100644 --- a/src/plugins/languageclient/diagnosticmanager.cpp +++ b/src/plugins/languageclient/diagnosticmanager.cpp @@ -130,8 +130,8 @@ void DiagnosticManager::showDiagnostics(const DocumentUri &uri) void DiagnosticManager::clearDiagnostics() { - for (auto it = m_diagnostics.cbegin(); it != m_diagnostics.cend(); ++it) - removeDiagnostics(it.key()); + for (const DocumentUri &uri : m_diagnostics.keys()) + removeDiagnostics(uri); } QList DiagnosticManager::diagnosticsAt(const DocumentUri &uri, const Range &range) const diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index 6c9df52b91b..43213e4de1c 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -387,13 +387,13 @@ void LanguageClientManager::clientFinished(Client *client) client->disconnect(this); client->log(tr("Unexpectedly finished. Restarting in %1 seconds.").arg(restartTimeoutS)); QTimer::singleShot(restartTimeoutS * 1000, client, [client]() { startClient(client); }); - for (auto it = m_clientForDocument.cbegin(); it != m_clientForDocument.cend(); ++it) - client->deactivateDocument(it.key()); + for (TextEditor::TextDocument *document : m_clientForDocument.keys(client)) + client->deactivateDocument(document); } else { if (unexpectedFinish && !m_shuttingDown) client->log(tr("Unexpectedly finished.")); - for (auto it = m_clientForDocument.cbegin(); it != m_clientForDocument.cend(); ++it) - m_clientForDocument.remove(it.key()); + for (TextEditor::TextDocument *document : m_clientForDocument.keys(client)) + m_clientForDocument.remove(document); deleteClient(client); if (m_shuttingDown && m_clients.isEmpty()) emit shutdownFinished();