From 523ab25418f5bf624bdb7752ec9d9ecba9b8aa4e Mon Sep 17 00:00:00 2001 From: surechen Date: Mon, 4 Mar 2024 14:25:51 +0800 Subject: [PATCH] add test for #71450 --- .../use-redundant-issue-71450.rs | 45 +++++++++++++++++++ .../use-redundant-issue-71450.stderr | 17 +++++++ .../use-redundant-issue-78894.rs | 34 ++++++++++++++ .../use-redundant-issue-78894.stderr | 14 ++++++ 4 files changed, 110 insertions(+) create mode 100644 tests/ui/lint/use-redundant/use-redundant-issue-71450.rs create mode 100644 tests/ui/lint/use-redundant/use-redundant-issue-71450.stderr create mode 100644 tests/ui/lint/use-redundant/use-redundant-issue-78894.stderr diff --git a/tests/ui/lint/use-redundant/use-redundant-issue-71450.rs b/tests/ui/lint/use-redundant/use-redundant-issue-71450.rs new file mode 100644 index 0000000000000..d0fb3454d3f2b --- /dev/null +++ b/tests/ui/lint/use-redundant/use-redundant-issue-71450.rs @@ -0,0 +1,45 @@ +//@ check-pass + +#![warn(unused_imports)] + +mod foo { + use std::fmt; + + pub struct String; + + impl String { + pub fn new() -> String { + String{} + } + } + + impl fmt::Display for String { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "String") + } + } +} + +fn main() { + + { + use std::string::String; //~ WARNING the item `String` is imported redundantly + // 'String' from 'std::string::String'. + let s = String::new(); + println!("{}", s); + } + + { + // 'String' from 'std::string::String'. + let s = String::new(); + println!("{}", s); + } + + { + use foo::*; + // 'String' from 'foo::String'. + let s = String::new(); + println!("{}", s); + } + +} diff --git a/tests/ui/lint/use-redundant/use-redundant-issue-71450.stderr b/tests/ui/lint/use-redundant/use-redundant-issue-71450.stderr new file mode 100644 index 0000000000000..b8832a3178371 --- /dev/null +++ b/tests/ui/lint/use-redundant/use-redundant-issue-71450.stderr @@ -0,0 +1,17 @@ +warning: the item `String` is imported redundantly + --> $DIR/use-redundant-issue-71450.rs:26:13 + | +LL | use std::string::String; + | ^^^^^^^^^^^^^^^^^^^ + --> $SRC_DIR/std/src/prelude/mod.rs:LL:COL + | + = note: the item `String` is already defined here + | +note: the lint level is defined here + --> $DIR/use-redundant-issue-71450.rs:3:9 + | +LL | #![warn(unused_imports)] + | ^^^^^^^^^^^^^^ + +warning: 1 warning emitted + diff --git a/tests/ui/lint/use-redundant/use-redundant-issue-78894.rs b/tests/ui/lint/use-redundant/use-redundant-issue-78894.rs index 1a81c16f954d8..09c87bc37a630 100644 --- a/tests/ui/lint/use-redundant/use-redundant-issue-78894.rs +++ b/tests/ui/lint/use-redundant/use-redundant-issue-78894.rs @@ -1,7 +1,16 @@ //@ check-pass //@ edition:2018 + #![warn(unused_imports)] +mod foo { + macro_rules! foo1 { + () => (); + } + + pub(crate) use foo1; +} + fn main () { bar!(); @@ -11,4 +20,29 @@ fn main () } use bar; + + mod m { + bar1!(); + + macro_rules! bar1 { + () => (); + } + + use bar1; + } + + { + foo::foo1!(); + } + + { + use foo::foo1; + foo1!(); + } + + { + use foo::foo1; //~ WARNING unused import: `foo::foo1` + foo::foo1!(); + } + } diff --git a/tests/ui/lint/use-redundant/use-redundant-issue-78894.stderr b/tests/ui/lint/use-redundant/use-redundant-issue-78894.stderr new file mode 100644 index 0000000000000..78dfe364223d4 --- /dev/null +++ b/tests/ui/lint/use-redundant/use-redundant-issue-78894.stderr @@ -0,0 +1,14 @@ +warning: unused import: `foo::foo1` + --> $DIR/use-redundant-issue-78894.rs:44:13 + | +LL | use foo::foo1; + | ^^^^^^^^^ + | +note: the lint level is defined here + --> $DIR/use-redundant-issue-78894.rs:4:9 + | +LL | #![warn(unused_imports)] + | ^^^^^^^^^^^^^^ + +warning: 1 warning emitted +