summaryrefslogtreecommitdiff
path: root/src/plugins/languageclient/languageclientutils.cpp
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2022-02-24 09:38:59 +0100
committerDavid Schulz <david.schulz@qt.io>2022-02-24 12:04:38 +0000
commit4452f71201e44552c36527c0aeffb1fb9ad025c4 (patch)
tree4e62574bbb4ddfe9119977ce7b95cb12efb635d3 /src/plugins/languageclient/languageclientutils.cpp
parent41538832c36748068a514c11d0a3be7dcdea77ad (diff)
downloadqt-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.cpp13
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()));