mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 07:14:28 +00:00
#56411 do not suggest a fix for a import conflict in a macro
This commit is contained in:
parent
0b1669d96c
commit
ac4b685650
@ -5147,11 +5147,13 @@ impl<'a> Resolver<'a> {
|
||||
if let (
|
||||
Ok(snippet),
|
||||
NameBindingKind::Import { directive, ..},
|
||||
_dummy @ false,
|
||||
false,
|
||||
false,
|
||||
) = (
|
||||
cm.span_to_snippet(binding.span),
|
||||
binding.kind.clone(),
|
||||
binding.span.is_dummy(),
|
||||
binding.span.ctxt().outer().expn_info().is_some(),
|
||||
) {
|
||||
let suggested_name = if name.as_str().chars().next().unwrap().is_uppercase() {
|
||||
format!("Other{}", name)
|
||||
|
17
src/test/ui/issues/issue-56411.rs
Normal file
17
src/test/ui/issues/issue-56411.rs
Normal file
@ -0,0 +1,17 @@
|
||||
macro_rules! import {
|
||||
( $($name:ident),* ) => {
|
||||
$(
|
||||
mod $name;
|
||||
pub use self::$name;
|
||||
//~^ ERROR the name `issue_56411` is defined multiple times
|
||||
//~| ERROR `issue_56411` is private, and cannot be re-exported
|
||||
|
||||
)*
|
||||
}
|
||||
}
|
||||
|
||||
import!(issue_56411);
|
||||
|
||||
fn main() {
|
||||
println!("Hello, world!");
|
||||
}
|
31
src/test/ui/issues/issue-56411.stderr
Normal file
31
src/test/ui/issues/issue-56411.stderr
Normal file
@ -0,0 +1,31 @@
|
||||
error[E0255]: the name `issue_56411` is defined multiple times
|
||||
--> $DIR/issue-56411.rs:5:21
|
||||
|
|
||||
LL | mod $name;
|
||||
| ---------- previous definition of the module `issue_56411` here
|
||||
LL | pub use self::$name;
|
||||
| ^^^^^^^^^^^
|
||||
| |
|
||||
| `issue_56411` reimported here
|
||||
| you can use `as` to change the binding name of the import
|
||||
...
|
||||
LL | import!(issue_56411);
|
||||
| --------------------- in this macro invocation
|
||||
|
|
||||
= note: `issue_56411` must be defined only once in the type namespace of this module
|
||||
|
||||
error[E0365]: `issue_56411` is private, and cannot be re-exported
|
||||
--> $DIR/issue-56411.rs:5:21
|
||||
|
|
||||
LL | pub use self::$name;
|
||||
| ^^^^^^^^^^^ re-export of private `issue_56411`
|
||||
...
|
||||
LL | import!(issue_56411);
|
||||
| --------------------- in this macro invocation
|
||||
|
|
||||
= note: consider declaring type or module `issue_56411` with `pub`
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
Some errors occurred: E0255, E0365.
|
||||
For more information about an error, try `rustc --explain E0255`.
|
5
src/test/ui/issues/issue_56411.rs
Normal file
5
src/test/ui/issues/issue_56411.rs
Normal file
@ -0,0 +1,5 @@
|
||||
// compile-pass
|
||||
|
||||
struct T {}
|
||||
|
||||
fn main() {}
|
Loading…
Reference in New Issue
Block a user