diff options
author | David Schulz <david.schulz@qt.io> | 2022-02-24 09:38:59 +0100 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2022-02-24 12:04:38 +0000 |
commit | 4452f71201e44552c36527c0aeffb1fb9ad025c4 (patch) | |
tree | 4e62574bbb4ddfe9119977ce7b95cb12efb635d3 /src/plugins/languageclient/languageclientutils.cpp | |
parent | 41538832c36748068a514c11d0a3be7dcdea77ad (diff) | |
download | qt-creator-4452f71201e44552c36527c0aeffb1fb9ad025c4.tar.gz |
LanguageClient: avoid optional::value
Potentially throws std::bad_optional_access. Use operator* and
operator-> instead.
Change-Id: Idefa137da53f3663ea88961f1105b93402ec4777
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Diffstat (limited to 'src/plugins/languageclient/languageclientutils.cpp')
-rw-r--r-- | src/plugins/languageclient/languageclientutils.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/plugins/languageclient/languageclientutils.cpp b/src/plugins/languageclient/languageclientutils.cpp index 207b5623d2..77c2b20f96 100644 --- a/src/plugins/languageclient/languageclientutils.cpp +++ b/src/plugins/languageclient/languageclientutils.cpp @@ -166,22 +166,21 @@ void updateCodeActionRefactoringMarker(Client *client, marker.type = client->id(); if (action.isValid()) marker.tooltip = action.title(); - if (action.edit().has_value()) { - WorkspaceEdit edit = action.edit().value(); + if (Utils::optional<WorkspaceEdit> edit = action.edit()) { marker.callback = [client, edit](const TextEditorWidget *) { - applyWorkspaceEdit(client, edit); + applyWorkspaceEdit(client, *edit); }; if (diagnostics.isEmpty()) { QList<TextEdit> edits; - if (optional<QList<TextDocumentEdit>> documentChanges = edit.documentChanges()) { + if (optional<QList<TextDocumentEdit>> documentChanges = edit->documentChanges()) { QList<TextDocumentEdit> changesForUri = Utils::filtered( - documentChanges.value(), [uri](const TextDocumentEdit &edit) { + *documentChanges, [uri](const TextDocumentEdit &edit) { return edit.textDocument().uri() == uri; }); for (const TextDocumentEdit &edit : changesForUri) edits << edit.edits(); - } else if (optional<WorkspaceEdit::Changes> localChanges = edit.changes()) { - edits = localChanges.value()[uri]; + } else if (optional<WorkspaceEdit::Changes> localChanges = edit->changes()) { + edits = (*localChanges)[uri]; } for (const TextEdit &edit : qAsConst(edits)) { marker.cursor = endOfLineCursor(edit.range().start().toTextCursor(doc->document())); |