about summary refs log tree commit diff
path: root/src/test/ui/issues
diff options
context:
space:
mode:
authorFrançois Mockers <mockersf@gmail.com>2018-12-18 02:22:08 +0100
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2019-01-25 22:39:14 +0300
commitac4b685650d1ba0a38806ce8f7cbf12e7a00f573 (patch)
treea3f487422e70a97c8aa7e85b25e4085d3e62222a /src/test/ui/issues
parent0b1669d96cee9dec9035a50fdf0a967a68605f98 (diff)
downloadrust-ac4b685650d1ba0a38806ce8f7cbf12e7a00f573.tar.gz
rust-ac4b685650d1ba0a38806ce8f7cbf12e7a00f573.zip
#56411 do not suggest a fix for a import conflict in a macro
Diffstat (limited to 'src/test/ui/issues')
-rw-r--r--src/test/ui/issues/issue-56411.rs17
-rw-r--r--src/test/ui/issues/issue-56411.stderr31
-rw-r--r--src/test/ui/issues/issue_56411.rs5
3 files changed, 53 insertions, 0 deletions
diff --git a/src/test/ui/issues/issue-56411.rs b/src/test/ui/issues/issue-56411.rs
new file mode 100644
index 00000000000..599f277123c
--- /dev/null
+++ b/src/test/ui/issues/issue-56411.rs
@@ -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!");
+}
diff --git a/src/test/ui/issues/issue-56411.stderr b/src/test/ui/issues/issue-56411.stderr
new file mode 100644
index 00000000000..842d86f4a3a
--- /dev/null
+++ b/src/test/ui/issues/issue-56411.stderr
@@ -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`.
diff --git a/src/test/ui/issues/issue_56411.rs b/src/test/ui/issues/issue_56411.rs
new file mode 100644
index 00000000000..bd689e913ab
--- /dev/null
+++ b/src/test/ui/issues/issue_56411.rs
@@ -0,0 +1,5 @@
+// compile-pass
+
+struct T {}
+
+fn main() {}