// compile-flags: --test

#![deny(unused_imports)]

use std::io::BufRead; //~ ERROR unused import: `std::io::BufRead`

fn a() {}
fn b() {}

mod test {
    use super::a;

    #[test]
    fn foo() {
        a();
        use crate::b; //~ ERROR unused import: `crate::b`
    }
}

mod tests {
    use super::a;

    #[test]
    fn foo() {
        a();
        use crate::b; //~ ERROR unused import: `crate::b`
    }
}

mod test_a {
    use super::a;

    #[test]
    fn foo() {
        a();
        use crate::b; //~ ERROR unused import: `crate::b`
    }
}

mod a_test {
    use super::a;

    #[test]
    fn foo() {
        a();
        use crate::b; //~ ERROR unused import: `crate::b`
    }
}

mod tests_a {
    use super::a;

    #[test]
    fn foo() {
        a();
        use crate::b; //~ ERROR unused import: `crate::b`
    }
}

mod a_tests {
    use super::a;

    #[test]
    fn foo() {
        a();
        use crate::b; //~ ERROR unused import: `crate::b`
    }
}

mod fastest_search {
    use super::a;

    #[test]
    fn foo() {
        a();
        use crate::b; //~ ERROR unused import: `crate::b`
    }
}

#[cfg(test)]
mod test_has_attr {
    use super::a;

    #[test]
    fn foo() {
        a();
        use crate::b; //~ ERROR unused import: `crate::b`
    }
}

mod test_has_no_attr {
    #[cfg(test)]
    use super::a;

    #[test]
    fn foo() {
        a();
        use crate::b; //~ ERROR unused import: `crate::b`
    }
}

fn main() {}
