summaryrefslogtreecommitdiffstats
path: root/src/test/ui/blind
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/blind')
-rw-r--r--src/test/ui/blind/blind-item-block-item-shadow.rs9
-rw-r--r--src/test/ui/blind/blind-item-block-item-shadow.stderr17
-rw-r--r--src/test/ui/blind/blind-item-block-middle.rs9
-rw-r--r--src/test/ui/blind/blind-item-block-middle.stderr16
-rw-r--r--src/test/ui/blind/blind-item-item-shadow.rs7
-rw-r--r--src/test/ui/blind/blind-item-item-shadow.stderr18
6 files changed, 76 insertions, 0 deletions
diff --git a/src/test/ui/blind/blind-item-block-item-shadow.rs b/src/test/ui/blind/blind-item-block-item-shadow.rs
new file mode 100644
index 000000000..d90ef77e2
--- /dev/null
+++ b/src/test/ui/blind/blind-item-block-item-shadow.rs
@@ -0,0 +1,9 @@
+mod foo { pub struct Bar; }
+
+fn main() {
+ {
+ struct Bar;
+ use foo::Bar;
+ //~^ ERROR the name `Bar` is defined multiple times
+ }
+}
diff --git a/src/test/ui/blind/blind-item-block-item-shadow.stderr b/src/test/ui/blind/blind-item-block-item-shadow.stderr
new file mode 100644
index 000000000..68b3f4c1a
--- /dev/null
+++ b/src/test/ui/blind/blind-item-block-item-shadow.stderr
@@ -0,0 +1,17 @@
+error[E0255]: the name `Bar` is defined multiple times
+ --> $DIR/blind-item-block-item-shadow.rs:6:13
+ |
+LL | struct Bar;
+ | ----------- previous definition of the type `Bar` here
+LL | use foo::Bar;
+ | ^^^^^^^^ `Bar` reimported here
+ |
+ = note: `Bar` must be defined only once in the type namespace of this block
+help: you can use `as` to change the binding name of the import
+ |
+LL | use foo::Bar as OtherBar;
+ | ~~~~~~~~~~~~~~~~~~~~
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0255`.
diff --git a/src/test/ui/blind/blind-item-block-middle.rs b/src/test/ui/blind/blind-item-block-middle.rs
new file mode 100644
index 000000000..6cd3f3bd4
--- /dev/null
+++ b/src/test/ui/blind/blind-item-block-middle.rs
@@ -0,0 +1,9 @@
+#![allow(non_camel_case_types)]
+
+mod foo { pub struct bar; }
+
+fn main() {
+ let bar = 5;
+ //~^ ERROR mismatched types
+ use foo::bar;
+}
diff --git a/src/test/ui/blind/blind-item-block-middle.stderr b/src/test/ui/blind/blind-item-block-middle.stderr
new file mode 100644
index 000000000..eb64fea94
--- /dev/null
+++ b/src/test/ui/blind/blind-item-block-middle.stderr
@@ -0,0 +1,16 @@
+error[E0308]: mismatched types
+ --> $DIR/blind-item-block-middle.rs:6:9
+ |
+LL | mod foo { pub struct bar; }
+ | -------------- unit struct defined here
+...
+LL | let bar = 5;
+ | ^^^ - this expression has type `{integer}`
+ | |
+ | expected integer, found struct `bar`
+ | `bar` is interpreted as a unit struct, not a new binding
+ | help: introduce a new binding instead: `other_bar`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/blind/blind-item-item-shadow.rs b/src/test/ui/blind/blind-item-item-shadow.rs
new file mode 100644
index 000000000..82d07ea70
--- /dev/null
+++ b/src/test/ui/blind/blind-item-item-shadow.rs
@@ -0,0 +1,7 @@
+mod foo { pub mod foo { } }
+
+use foo::foo;
+//~^ ERROR the name `foo` is defined multiple times
+//~| `foo` reimported here
+
+fn main() {}
diff --git a/src/test/ui/blind/blind-item-item-shadow.stderr b/src/test/ui/blind/blind-item-item-shadow.stderr
new file mode 100644
index 000000000..7f9e80089
--- /dev/null
+++ b/src/test/ui/blind/blind-item-item-shadow.stderr
@@ -0,0 +1,18 @@
+error[E0255]: the name `foo` is defined multiple times
+ --> $DIR/blind-item-item-shadow.rs:3:5
+ |
+LL | mod foo { pub mod foo { } }
+ | ------- previous definition of the module `foo` here
+LL |
+LL | use foo::foo;
+ | ^^^^^^^^ `foo` reimported here
+ |
+ = note: `foo` must be defined only once in the type namespace of this module
+help: you can use `as` to change the binding name of the import
+ |
+LL | use foo::foo as other_foo;
+ | ~~~~~~~~~~~~~~~~~~~~~
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0255`.