From 1db53b78fe0ec8d228cfa4df528456974285c29d Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Wed, 3 May 2017 09:57:37 -0700 Subject: [PATCH] Improve configuration load errors Add some more context information on the backtrace --- src/cargo/util/config.rs | 10 ++++++++-- tests/bad-config.rs | 3 +++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/cargo/util/config.rs b/src/cargo/util/config.rs index 762bc79de75..aa27fa0436c 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 8ceb2fdaf86..f82495cc2ee 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