Lint unreachable_pub got easily confused by multiple items in a single pub use ... statement · Issue #64762 · rust-lang/rust (original) (raw)

Skip to content

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Appearance settings

@imp

Description

@imp

This code (playground) trips unreachable_pub lint (while being completely legit).

#![deny(unreachable_pub)]

pub use self::m1::{Item1, Item2};

mod m1 { pub use self::m2::{Item1, Item2};

mod m2 {
    pub struct Item1;
    pub struct Item2;
}

}

However, if we break the top-level pub use ... statement into two separate statements (playground) - unreachable_pub lint convinces itself that the code is, indeed, legit.

#![deny(unreachable_pub)]

pub use self::m1::Item1; pub use self::m1::Item2;

mod m1 {

pub use self::m2::{Item1, Item2};

mod m2 {
    pub struct Item1;
    pub struct Item2;
}

}