Get rid of failure: ra_lsp_server & ra_project_model

This commit is contained in:
Muhammad Mominul Huque 2019-06-15 02:42:56 +06:00
parent a931fb1ef6
commit 9709bd39ca
No known key found for this signature in database
GPG key ID: 37AF141540DE557D
10 changed files with 32 additions and 36 deletions

View file

@ -3,7 +3,6 @@ use std::path::{Path, PathBuf};
use cargo_metadata::{MetadataCommand, CargoOpt};
use ra_arena::{Arena, RawId, impl_arena_id};
use rustc_hash::FxHashMap;
use failure::format_err;
use ra_db::Edition;
use crate::Result;
@ -127,7 +126,7 @@ impl CargoWorkspace {
if let Some(parent) = cargo_toml.parent() {
meta.current_dir(parent);
}
let meta = meta.exec().map_err(|e| format_err!("cargo metadata failed: {}", e))?;
let meta = meta.exec().map_err(|e| format!("cargo metadata failed: {}", e))?;
let mut pkg_by_id = FxHashMap::default();
let mut packages = Arena::default();
let mut targets = Arena::default();

View file

@ -6,9 +6,9 @@ use std::{
fs::File,
io::BufReader,
path::{Path, PathBuf},
error::Error
};
use failure::bail;
use rustc_hash::FxHashMap;
use ra_db::{CrateGraph, FileId, Edition};
@ -24,7 +24,7 @@ pub use crate::{
};
// FIXME use proper error enum
pub type Result<T> = ::std::result::Result<T, ::failure::Error>;
pub type Result<T> = ::std::result::Result<T, Box<dyn Error + Send + Sync>>;
#[derive(Debug, Clone)]
pub enum ProjectWorkspace {
@ -298,5 +298,5 @@ fn find_cargo_toml(path: &Path) -> Result<PathBuf> {
}
curr = path.parent();
}
bail!("can't find Cargo.toml at {}", path.display())
Err(format!("can't find Cargo.toml at {}", path.display()))?
}

View file

@ -38,18 +38,18 @@ impl Sysroot {
.args(&["--print", "sysroot"])
.output()?;
if !rustc_output.status.success() {
failure::bail!("failed to locate sysroot")
Err("failed to locate sysroot")?
}
let stdout = String::from_utf8(rustc_output.stdout)?;
let sysroot_path = Path::new(stdout.trim());
let src = sysroot_path.join("lib/rustlib/src/rust/src");
if !src.exists() {
failure::bail!(
Err(format!(
"can't load standard library from sysroot\n\
{:?}\n\
try running `rustup component add rust-src`",
src,
);
))?;
}
let mut sysroot = Sysroot { crates: Arena::default() };