diff options
Diffstat (limited to 'crates')
-rw-r--r-- | crates/ra_lsp_server/src/main_loop.rs | 2 | ||||
-rw-r--r-- | crates/ra_lsp_server/src/project_model/sysroot.rs | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/crates/ra_lsp_server/src/main_loop.rs b/crates/ra_lsp_server/src/main_loop.rs index c43637351..6b9f6a988 100644 --- a/crates/ra_lsp_server/src/main_loop.rs +++ b/crates/ra_lsp_server/src/main_loop.rs | |||
@@ -65,7 +65,7 @@ pub fn main_loop( | |||
65 | let workspaces = match ws_worker.recv().unwrap() { | 65 | let workspaces = match ws_worker.recv().unwrap() { |
66 | Ok(ws) => vec![ws], | 66 | Ok(ws) => vec![ws], |
67 | Err(e) => { | 67 | Err(e) => { |
68 | log::warn!("loading workspace failed: {}", e); | 68 | log::error!("loading workspace failed: {}", e); |
69 | Vec::new() | 69 | Vec::new() |
70 | } | 70 | } |
71 | }; | 71 | }; |
diff --git a/crates/ra_lsp_server/src/project_model/sysroot.rs b/crates/ra_lsp_server/src/project_model/sysroot.rs index 1dbab57f8..3b2fa070b 100644 --- a/crates/ra_lsp_server/src/project_model/sysroot.rs +++ b/crates/ra_lsp_server/src/project_model/sysroot.rs | |||
@@ -44,6 +44,14 @@ impl Sysroot { | |||
44 | let stdout = String::from_utf8(rustc_output.stdout)?; | 44 | let stdout = String::from_utf8(rustc_output.stdout)?; |
45 | let sysroot_path = Path::new(stdout.trim()); | 45 | let sysroot_path = Path::new(stdout.trim()); |
46 | let src = sysroot_path.join("lib/rustlib/src/rust/src"); | 46 | let src = sysroot_path.join("lib/rustlib/src/rust/src"); |
47 | if !src.exists() { | ||
48 | failure::bail!( | ||
49 | "can't load standard library from sysroot\n\ | ||
50 | {:?}\n\ | ||
51 | try running `rustup component add rust-src`", | ||
52 | src, | ||
53 | ); | ||
54 | } | ||
47 | 55 | ||
48 | let mut sysroot = Sysroot { | 56 | let mut sysroot = Sysroot { |
49 | crates: Arena::default(), | 57 | crates: Arena::default(), |