// run-rustfix

#![feature(rust_2018_preview, crate_visibility_modifier)]
#![deny(absolute_paths_not_starting_with_crate)]

use crate::foo::{a, b};
//~^ ERROR absolute paths must start with
//~| this was previously accepted

mod foo {
    crate fn a() {}
    crate fn b() {}
    crate fn c() {}
}

fn main() {
    a();
    b();

    {
        use crate::foo::{self as x, c};
        //~^ ERROR absolute paths must start with
        //~| this was previously accepted
        x::a();
        c();
    }
}
