Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Commit 3619d09

Browse files
committed
Simplify InitializationOptions::try_deserialize
1 parent e46712c commit 3619d09

File tree

2 files changed

+8
-17
lines changed

2 files changed

+8
-17
lines changed

rls/src/lsp_data.rs

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -275,25 +275,16 @@ impl InitializationOptions {
275275
/// "rust", all first level keys of rust's value are converted to
276276
/// snake_case, duplicated and unknown keys are reported
277277
pub fn try_deserialize(
278-
val: &serde_json::value::Value,
278+
mut val: serde_json::value::Value,
279279
dups: &mut std::collections::HashMap<String, Vec<String>>,
280280
unknowns: &mut Vec<String>,
281281
) -> Result<InitializationOptions, ()> {
282-
let mut val = val.to_owned();
283-
let mut set = None;
284-
if let Some(set1) = val.get_mut("settings") {
285-
set = Some(set1.take());
286-
}
287-
let mut ret: InitializationOptions = match serde_json::from_value(val) {
288-
Ok(ret) => ret,
289-
_ => return Err(()),
290-
};
291-
if let Some(set) = set {
292-
if let Ok(set) = ChangeConfigSettings::try_deserialize(&set, dups, unknowns) {
293-
ret.settings = Some(set);
294-
}
295-
}
296-
Ok(ret)
282+
let settings = val
283+
.get_mut("settings")
284+
.map(|x| x.take())
285+
.and_then(|set| ChangeConfigSettings::try_deserialize(&set, dups, unknowns).ok());
286+
287+
Ok(InitializationOptions { settings, ..serde_json::from_value(val).map_err(|_| ())? })
297288
}
298289
}
299290

rls/src/server/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ impl BlockingRequestAction for InitializeRequest {
133133
.initialization_options
134134
.take()
135135
.and_then(|opt| {
136-
InitializationOptions::try_deserialize(&opt, &mut dups, &mut unknowns).ok()
136+
InitializationOptions::try_deserialize(opt, &mut dups, &mut unknowns).ok()
137137
})
138138
.unwrap_or_default();
139139

0 commit comments

Comments
 (0)