diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs index 17dff18c3c3..f1a75f996b0 100644 --- a/src/librustc/middle/resolve.rs +++ b/src/librustc/middle/resolve.rs @@ -3055,8 +3055,9 @@ impl<'a> Resolver<'a> { .contains_key(&name) { match import_resolution.type_target { Some(ref target) if !target.shadowable => { - let msg = format!("import `{}` conflicts with imported \ - crate in this module", + let msg = format!("import `{0}` conflicts with imported \ + crate in this module \ + (maybe you meant `use {0}::*`?)", token::get_name(name).get()); self.session.span_err(import_span, msg.as_slice()); } diff --git a/src/test/compile-fail/issue-19498.rs b/src/test/compile-fail/issue-19498.rs new file mode 100644 index 00000000000..02b9c42b65b --- /dev/null +++ b/src/test/compile-fail/issue-19498.rs @@ -0,0 +1,21 @@ +// Copyright 2013 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +use self::A; //~ ERROR import `A` conflicts with existing submodule +use self::B; //~ ERROR import `B` conflicts with existing submodule +mod A {} +pub mod B {} + +mod C { + use C::D; //~ ERROR import `D` conflicts with existing submodule + mod D {} +} + +fn main() {} diff --git a/src/test/compile-fail/unresolved-extern-mod-suggestion.rs b/src/test/compile-fail/unresolved-extern-mod-suggestion.rs index 33d3deb8733..c2ee62c195c 100644 --- a/src/test/compile-fail/unresolved-extern-mod-suggestion.rs +++ b/src/test/compile-fail/unresolved-extern-mod-suggestion.rs @@ -9,6 +9,7 @@ // except according to those terms. extern crate core; -use core; //~ ERROR unresolved import (maybe you meant `core::*`?) +use core; +//~^ ERROR import `core` conflicts with imported crate in this module fn main() {}