// 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)]


//~^ 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();
}
