From caa8b554f589cfa9d79fa19c61e3fd95fbbafdfb Mon Sep 17 00:00:00 2001 From: Marcin Mielniczuk Date: Sat, 8 Dec 2018 12:01:34 +0100 Subject: [PATCH] Workaround #703 to prevent obscure failures due to sccache. --- src/main.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main.rs b/src/main.rs index 2c4f638f97e..0b96d99543a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -60,6 +60,7 @@ pub mod server; mod test; const RUSTC_SHIM_ENV_VAR_NAME: &str = "RLS_RUSTC_SHIM"; +const RUSTC_WRAPPER_ENV_VAR: &str = "RUSTC_WRAPPER"; type Span = rls_span::Span; @@ -73,6 +74,17 @@ pub fn main() { fn main_inner() -> i32 { env_logger::init(); + // [workaround] + // Currently sccache breaks RLS with obscure error messages. + // Until it's actually fixed disable the wrapper completely + // in the current process tree. + // + // See https://github.com/rust-lang/rls/issues/703 + // and https://github.com/mozilla/sccache/issues/303 + if env::var(RUSTC_WRAPPER_ENV_VAR) != Ok("sccache".to_owned()) { + env::remove_var(RUSTC_WRAPPER_ENV_VAR); + } + if env::var(RUSTC_SHIM_ENV_VAR_NAME) .map(|v| v != "0") .unwrap_or(false)