//@ aux-build:edition-lint-paths.rs //@ run-rustfix //@ compile-flags:--extern edition_lint_paths //@ edition:2018 // The "normal case". Ideally we would remove the `extern crate` here, // but we don't. #![deny(rust_2018_idioms)] #![allow(dead_code)] extern crate edition_lint_paths; //~^ ERROR unused extern crate // Shouldn't suggest changing to `use`, as `bar` // would no longer be added to the prelude which could cause // compilation errors for imports that use `bar` in other // modules. See #57672. extern crate edition_lint_paths as bar; fn main() { // This is not considered to *use* the `extern crate` in Rust 2018: use edition_lint_paths::foo; foo(); // But this should be a use of the (renamed) crate: crate::bar::foo(); }