about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLaurent Arnoud <laurent@spkdev.net>2017-10-27 19:14:03 +0200
committerLaurent Arnoud <laurent@spkdev.net>2017-10-27 19:14:22 +0200
commit5773efab5c4d4d234cecef32f95f16ce8783c285 (patch)
tree0759c28eff9d97a6cd8be6e97767f2791231be5f
parent11d758a7a849f2929ffb30651e4b8d74a3cef5be (diff)
downloadrust-5773efab5c4d4d234cecef32f95f16ce8783c285.tar.gz
rust-5773efab5c4d4d234cecef32f95f16ce8783c285.zip
Quit immediately when current directory is invalid
Thanks-to: @kennytm
-rw-r--r--src/librustc/session/mod.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/librustc/session/mod.rs b/src/librustc/session/mod.rs
index cc27f61e369..a72be733f4b 100644
--- a/src/librustc/session/mod.rs
+++ b/src/librustc/session/mod.rs
@@ -776,9 +776,10 @@ pub fn build_session_(sopts: config::Options,
     let print_fuel_crate = sopts.debugging_opts.print_fuel.clone();
     let print_fuel = Cell::new(0);
 
-    let working_dir = env::current_dir()
-        .expect("Could not find current working directory")
-        .to_string_lossy().into_owned();
+    let working_dir = match env::current_dir() {
+        Ok(dir) => dir.to_string_lossy().into_owned(),
+        Err(e) => panic!(p_s.span_diagnostic.fatal(&format!("Current directory is invalid: {}", e))),
+    };
     let working_dir = file_path_mapping.map_prefix(working_dir);
 
     let sess = Session {