Rollup merge of #57908 - petrochenkov:errepice, r=estebank

resolve: Fix span arithmetics in the import conflict error

https://github.com/rust-lang/rust/pull/56937 rebased and fixed

Fixes https://github.com/rust-lang/rust/issues/56411
Fixes https://github.com/rust-lang/rust/issues/57071
Fixes https://github.com/rust-lang/rust/issues/57787

r? @estebank
This commit is contained in:
Mazdak Farrokhzad 2019-01-26 18:21:47 +01:00 committed by GitHub
commit bbe8dd9ca3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 98 additions and 46 deletions

View file

@ -0,0 +1,17 @@
macro_rules! import {
( $($name:ident),* ) => {
$(
mod $name;
pub use self::$name;
//~^ ERROR the name `issue_56411_aux` is defined multiple times
//~| ERROR `issue_56411_aux` is private, and cannot be re-exported
)*
}
}
import!(issue_56411_aux);
fn main() {
println!("Hello, world!");
}

View file

@ -0,0 +1,31 @@
error[E0255]: the name `issue_56411_aux` is defined multiple times
--> $DIR/issue-56411.rs:5:21
|
LL | mod $name;
| ---------- previous definition of the module `issue_56411_aux` here
LL | pub use self::$name;
| ^^^^^^^^^^^
| |
| `issue_56411_aux` reimported here
| you can use `as` to change the binding name of the import
...
LL | import!(issue_56411_aux);
| ------------------------- in this macro invocation
|
= note: `issue_56411_aux` must be defined only once in the type namespace of this module
error[E0365]: `issue_56411_aux` is private, and cannot be re-exported
--> $DIR/issue-56411.rs:5:21
|
LL | pub use self::$name;
| ^^^^^^^^^^^ re-export of private `issue_56411_aux`
...
LL | import!(issue_56411_aux);
| ------------------------- in this macro invocation
|
= note: consider declaring type or module `issue_56411_aux` with `pub`
error: aborting due to 2 previous errors
Some errors occurred: E0255, E0365.
For more information about an error, try `rustc --explain E0255`.

View file

@ -0,0 +1,5 @@
// compile-pass
struct T {}
fn main() {}