mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 11:31:15 +00:00
Always error when failed to parse DiscoverProjectMessage
This commit is contained in:
parent
dd41cda70e
commit
0a3e0032e6
@ -7,7 +7,6 @@ use ide_db::FxHashMap;
|
||||
use paths::{AbsPathBuf, Utf8Path, Utf8PathBuf};
|
||||
use project_model::ProjectJsonData;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::Value;
|
||||
use tracing::{info_span, span::EnteredSpan};
|
||||
|
||||
use crate::command::{CargoParser, CommandHandle};
|
||||
@ -121,18 +120,19 @@ struct DiscoverProjectParser;
|
||||
|
||||
impl CargoParser<DiscoverProjectMessage> for DiscoverProjectParser {
|
||||
fn from_line(&self, line: &str, _error: &mut String) -> Option<DiscoverProjectMessage> {
|
||||
// can the line even be deserialized as JSON?
|
||||
let Ok(data) = serde_json::from_str::<Value>(line) else {
|
||||
let err = DiscoverProjectData::Error { error: line.to_owned(), source: None };
|
||||
return Some(DiscoverProjectMessage::new(err));
|
||||
};
|
||||
|
||||
let Ok(data) = serde_json::from_value::<DiscoverProjectData>(data) else {
|
||||
return None;
|
||||
};
|
||||
|
||||
let msg = DiscoverProjectMessage::new(data);
|
||||
Some(msg)
|
||||
match serde_json::from_str::<DiscoverProjectData>(line) {
|
||||
Ok(data) => {
|
||||
let msg = DiscoverProjectMessage::new(data);
|
||||
Some(msg)
|
||||
}
|
||||
Err(err) => {
|
||||
let err = DiscoverProjectData::Error {
|
||||
error: format!("{:#?}\n{}", err, line),
|
||||
source: None,
|
||||
};
|
||||
Some(DiscoverProjectMessage::new(err))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn from_eof(&self) -> Option<DiscoverProjectMessage> {
|
||||
|
Loading…
x
Reference in New Issue
Block a user