diff --git a/src/librustc/middle/infer/error_reporting.rs b/src/librustc/middle/infer/error_reporting.rs index 363af87b70ba0..7ec39ac851574 100644 --- a/src/librustc/middle/infer/error_reporting.rs +++ b/src/librustc/middle/infer/error_reporting.rs @@ -511,9 +511,11 @@ impl<'a, 'tcx> ErrorReporting<'tcx> for InferCtxt<'a, 'tcx> { // We compare strings because PathMod and PathName can be different // for imported and non-imported crates if exp_path == found_path { + let crate_name = self.tcx.sess.cstore + .get_crate_data(did1.krate).name(); self.tcx.sess.span_note(sp, &format!("Perhaps two different versions \ of crate `{}` are being used?", - exp_path[0])); + crate_name)); } } }; diff --git a/src/test/compile-fail/type-mismatch-same-crate-name.rs b/src/test/compile-fail/type-mismatch-same-crate-name.rs index 69ef31e90e47c..014fa35c309e6 100644 --- a/src/test/compile-fail/type-mismatch-same-crate-name.rs +++ b/src/test/compile-fail/type-mismatch-same-crate-name.rs @@ -25,9 +25,9 @@ fn main() { extern crate crate_a1 as a; a::try_foo(foo2); //~ ERROR mismatched types //~^ HELP run - //~^^ NOTE Perhaps two different versions of crate `main` + //~^^ NOTE Perhaps two different versions of crate `crate_a1` a::try_bar(bar2); //~ ERROR mismatched types //~^ HELP run - //~^^ NOTE Perhaps two different versions of crate `main` + //~^^ NOTE Perhaps two different versions of crate `crate_a1` } }