From: Alex Crichton Date: Wed, 3 May 2017 16:57:37 +0000 (-0700) Subject: Improve configuration load errors X-Git-Tag: archive/raspbian/0.35.0-2+rpi1~3^2^2^2^2^2^2^2~22^2~9^2~54^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=1db53b78fe0ec8d228cfa4df528456974285c29d;p=cargo.git Improve configuration load errors Add some more context information on the backtrace --- diff --git a/src/cargo/util/config.rs b/src/cargo/util/config.rs index 762bc79de..aa27fa043 100644 --- a/src/cargo/util/config.rs +++ b/src/cargo/util/config.rs @@ -394,7 +394,10 @@ impl Config { walk_tree(&self.cwd, |mut file, path| { let mut contents = String::new(); - file.read_to_string(&mut contents)?; + file.read_to_string(&mut contents).chain_error(|| { + human(format!("failed to read configuration file `{}`", + path.display())) + })?; let toml = cargo_toml::parse(&contents, &path, self).chain_error(|| { @@ -405,7 +408,10 @@ impl Config { human(format!("failed to load TOML configuration from `{}`", path.display())) })?; - cfg.merge(value)?; + cfg.merge(value).chain_error(|| { + human(format!("failed to merge configuration at `{}`", + path.display())) + })?; Ok(()) }).chain_error(|| human("Couldn't load Cargo configuration"))?; diff --git a/tests/bad-config.rs b/tests/bad-config.rs index 8ceb2fdaf..f82495cc2 100644 --- a/tests/bad-config.rs +++ b/tests/bad-config.rs @@ -120,6 +120,9 @@ fn bad5() { Caused by: Couldn't load Cargo configuration +Caused by: + failed to merge configuration at `[..]` + Caused by: failed to merge key `foo` between files: file 1: [..]foo[..]foo[..]config