//@compile-flags: --edition 2018 #![feature(unqualified_local_imports)] #![deny(unqualified_local_imports)] mod localmod { pub struct S; pub struct T; } // Not a local import, so no lint. use std::cell::Cell; // Implicitly local import, gets lint. use localmod::S; //~ERROR: unqualified // Explicitly local import, no lint. use self::localmod::T; macro_rules! mymacro { ($cond:expr) => { if !$cond { continue; } }; } // Macro import: no lint, as there is no other way to write it. pub(crate) use mymacro; #[allow(unused)] enum LocalEnum { VarA, VarB, } fn main() { // Import in a function, no lint. use LocalEnum::*; }