mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-11-10 07:04:22 +00:00
internal: optimize compile time
cargo llvm-lines shows that path_to_error bloats the code. I don't think I've needed this functionality recently, seems that we've fixed most of the serialization problems. So let's just remove it. Should be easy to add back if we ever need it, and it does make sense to keep the `from_json` function around.
This commit is contained in:
parent
182a2b8e72
commit
92da7e9ffa
3 changed files with 3 additions and 13 deletions
10
Cargo.lock
generated
10
Cargo.lock
generated
|
@ -1315,7 +1315,6 @@ dependencies = [
|
|||
"rustc-hash",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"serde_path_to_error",
|
||||
"sourcegen",
|
||||
"stdx",
|
||||
"syntax",
|
||||
|
@ -1453,15 +1452,6 @@ dependencies = [
|
|||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_path_to_error"
|
||||
version = "0.1.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "42f6109f0506e20f7e0f910e51a0079acf41da8e0694e6442527c4ddf5a2b158"
|
||||
dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "serde_repr"
|
||||
version = "0.1.7"
|
||||
|
|
|
@ -31,7 +31,6 @@ oorandom = "11.1.2"
|
|||
rustc-hash = "1.1.0"
|
||||
serde = { version = "1.0.106", features = ["derive"] }
|
||||
serde_json = { version = "1.0.48", features = ["preserve_order"] }
|
||||
serde_path_to_error = "0.1"
|
||||
threadpool = "1.7.1"
|
||||
rayon = "1.5"
|
||||
mimalloc = { version = "0.1.19", default-features = false, optional = true }
|
||||
|
|
|
@ -41,16 +41,17 @@ pub mod config;
|
|||
#[cfg(test)]
|
||||
mod integrated_benchmarks;
|
||||
|
||||
use serde::de::DeserializeOwned;
|
||||
use std::fmt;
|
||||
|
||||
use serde::de::DeserializeOwned;
|
||||
|
||||
pub use crate::{caps::server_capabilities, main_loop::main_loop};
|
||||
|
||||
pub type Error = Box<dyn std::error::Error + Send + Sync>;
|
||||
pub type Result<T, E = Error> = std::result::Result<T, E>;
|
||||
|
||||
pub fn from_json<T: DeserializeOwned>(what: &'static str, json: serde_json::Value) -> Result<T> {
|
||||
let res = serde_path_to_error::deserialize(&json)
|
||||
let res = serde_json::from_value(json.clone())
|
||||
.map_err(|e| format!("Failed to deserialize {}: {}; {}", what, e, json))?;
|
||||
Ok(res)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue