summaryrefslogtreecommitdiffstats
path: root/tests/ui/lint/use-redundant
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/lint/use-redundant')
-rw-r--r--tests/ui/lint/use-redundant/issue-92904.rs17
-rw-r--r--tests/ui/lint/use-redundant/use-redundant-glob-parent.rs16
-rw-r--r--tests/ui/lint/use-redundant/use-redundant-glob-parent.stderr17
-rw-r--r--tests/ui/lint/use-redundant/use-redundant-glob.rs15
-rw-r--r--tests/ui/lint/use-redundant/use-redundant-glob.stderr16
-rw-r--r--tests/ui/lint/use-redundant/use-redundant-multiple-namespaces.rs21
-rw-r--r--tests/ui/lint/use-redundant/use-redundant-not-parent.rs19
-rw-r--r--tests/ui/lint/use-redundant/use-redundant.rs27
-rw-r--r--tests/ui/lint/use-redundant/use-redundant.stderr29
9 files changed, 177 insertions, 0 deletions
diff --git a/tests/ui/lint/use-redundant/issue-92904.rs b/tests/ui/lint/use-redundant/issue-92904.rs
new file mode 100644
index 000000000..511d9d263
--- /dev/null
+++ b/tests/ui/lint/use-redundant/issue-92904.rs
@@ -0,0 +1,17 @@
+// check-pass
+
+pub struct Foo(bar::Bar);
+
+pub mod bar {
+ pub struct Foo(pub Bar);
+ pub struct Bar(pub char);
+}
+
+pub fn warning() -> Foo {
+ use bar::*;
+ #[deny(unused_imports)]
+ use self::Foo; // no error
+ Foo(Bar('a'))
+}
+
+fn main() {}
diff --git a/tests/ui/lint/use-redundant/use-redundant-glob-parent.rs b/tests/ui/lint/use-redundant/use-redundant-glob-parent.rs
new file mode 100644
index 000000000..6b1e018d2
--- /dev/null
+++ b/tests/ui/lint/use-redundant/use-redundant-glob-parent.rs
@@ -0,0 +1,16 @@
+// check-pass
+#![warn(unused_imports)]
+
+pub mod bar {
+ pub struct Foo(pub Bar);
+ pub struct Bar(pub char);
+}
+
+use bar::*;
+
+pub fn warning() -> Foo {
+ use bar::Foo; //~ WARNING imported redundantly
+ Foo(Bar('a'))
+}
+
+fn main() {}
diff --git a/tests/ui/lint/use-redundant/use-redundant-glob-parent.stderr b/tests/ui/lint/use-redundant/use-redundant-glob-parent.stderr
new file mode 100644
index 000000000..2c3b33452
--- /dev/null
+++ b/tests/ui/lint/use-redundant/use-redundant-glob-parent.stderr
@@ -0,0 +1,17 @@
+warning: the item `Foo` is imported redundantly
+ --> $DIR/use-redundant-glob-parent.rs:12:9
+ |
+LL | use bar::*;
+ | ------ the item `Foo` is already imported here
+...
+LL | use bar::Foo;
+ | ^^^^^^^^
+ |
+note: the lint level is defined here
+ --> $DIR/use-redundant-glob-parent.rs:2:9
+ |
+LL | #![warn(unused_imports)]
+ | ^^^^^^^^^^^^^^
+
+warning: 1 warning emitted
+
diff --git a/tests/ui/lint/use-redundant/use-redundant-glob.rs b/tests/ui/lint/use-redundant/use-redundant-glob.rs
new file mode 100644
index 000000000..bd9e51b6f
--- /dev/null
+++ b/tests/ui/lint/use-redundant/use-redundant-glob.rs
@@ -0,0 +1,15 @@
+// check-pass
+#![warn(unused_imports)]
+
+pub mod bar {
+ pub struct Foo(pub Bar);
+ pub struct Bar(pub char);
+}
+
+pub fn warning() -> bar::Foo {
+ use bar::*;
+ use bar::Foo; //~ WARNING imported redundantly
+ Foo(Bar('a'))
+}
+
+fn main() {}
diff --git a/tests/ui/lint/use-redundant/use-redundant-glob.stderr b/tests/ui/lint/use-redundant/use-redundant-glob.stderr
new file mode 100644
index 000000000..d3b406d82
--- /dev/null
+++ b/tests/ui/lint/use-redundant/use-redundant-glob.stderr
@@ -0,0 +1,16 @@
+warning: the item `Foo` is imported redundantly
+ --> $DIR/use-redundant-glob.rs:11:9
+ |
+LL | use bar::*;
+ | ------ the item `Foo` is already imported here
+LL | use bar::Foo;
+ | ^^^^^^^^
+ |
+note: the lint level is defined here
+ --> $DIR/use-redundant-glob.rs:2:9
+ |
+LL | #![warn(unused_imports)]
+ | ^^^^^^^^^^^^^^
+
+warning: 1 warning emitted
+
diff --git a/tests/ui/lint/use-redundant/use-redundant-multiple-namespaces.rs b/tests/ui/lint/use-redundant/use-redundant-multiple-namespaces.rs
new file mode 100644
index 000000000..0fb60840f
--- /dev/null
+++ b/tests/ui/lint/use-redundant/use-redundant-multiple-namespaces.rs
@@ -0,0 +1,21 @@
+// check-pass
+#![allow(nonstandard_style)]
+
+pub mod bar {
+ pub struct Foo { pub bar: Bar }
+ pub struct Bar(pub char);
+}
+
+pub mod x {
+ use crate::bar;
+ pub const Foo: bar::Bar = bar::Bar('a');
+}
+
+pub fn warning() -> bar::Foo {
+ #![deny(unused_imports)] // no error
+ use bar::*;
+ use x::Foo;
+ Foo { bar: Foo }
+}
+
+fn main() {}
diff --git a/tests/ui/lint/use-redundant/use-redundant-not-parent.rs b/tests/ui/lint/use-redundant/use-redundant-not-parent.rs
new file mode 100644
index 000000000..c97a3d341
--- /dev/null
+++ b/tests/ui/lint/use-redundant/use-redundant-not-parent.rs
@@ -0,0 +1,19 @@
+// check-pass
+
+pub mod bar {
+ pub struct Foo(pub Bar);
+ pub struct Bar(pub char);
+}
+
+pub mod x {
+ pub struct Foo(pub crate::bar::Bar);
+}
+
+pub fn warning() -> x::Foo {
+ use bar::*;
+ #[deny(unused_imports)]
+ use x::Foo; // no error
+ Foo(Bar('a'))
+}
+
+fn main() {}
diff --git a/tests/ui/lint/use-redundant/use-redundant.rs b/tests/ui/lint/use-redundant/use-redundant.rs
new file mode 100644
index 000000000..53315dcf6
--- /dev/null
+++ b/tests/ui/lint/use-redundant/use-redundant.rs
@@ -0,0 +1,27 @@
+// check-pass
+#![warn(unused_imports)]
+
+use crate::foo::Bar;
+
+mod foo {
+ pub type Bar = i32;
+}
+
+fn baz() -> Bar {
+ 3
+}
+
+mod m1 { pub struct S {} }
+mod m2 { pub struct S {} }
+
+use m1::*; //~ WARNING unused import
+use m2::*; //~ WARNING unused import
+
+fn main() {
+ use crate::foo::Bar; //~ WARNING imported redundantly
+ let _a: Bar = 3;
+ baz();
+
+ use m1::S;
+ let _s = S {};
+}
diff --git a/tests/ui/lint/use-redundant/use-redundant.stderr b/tests/ui/lint/use-redundant/use-redundant.stderr
new file mode 100644
index 000000000..c861a1956
--- /dev/null
+++ b/tests/ui/lint/use-redundant/use-redundant.stderr
@@ -0,0 +1,29 @@
+warning: unused import: `m1::*`
+ --> $DIR/use-redundant.rs:17:5
+ |
+LL | use m1::*;
+ | ^^^^^
+ |
+note: the lint level is defined here
+ --> $DIR/use-redundant.rs:2:9
+ |
+LL | #![warn(unused_imports)]
+ | ^^^^^^^^^^^^^^
+
+warning: unused import: `m2::*`
+ --> $DIR/use-redundant.rs:18:5
+ |
+LL | use m2::*;
+ | ^^^^^
+
+warning: the item `Bar` is imported redundantly
+ --> $DIR/use-redundant.rs:21:9
+ |
+LL | use crate::foo::Bar;
+ | --------------- the item `Bar` is already imported here
+...
+LL | use crate::foo::Bar;
+ | ^^^^^^^^^^^^^^^
+
+warning: 3 warnings emitted
+