Closed
Description
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;
}
}