This code:
mod A {
struct X;
mod B {
use A::X;
pub fn foo(_: X) {}
}
}
Triggers:
src\main.rs:6:23: 6:24 error: private type in exported type signature
src\main.rs:6 pub fn foo(_: X) {}
The foo function is only visible to A and B, and X is also visible to both A and B, so I don't see why this would be forbidden.
This was introduced in the rustc 1.0.0-nightly (f4e0ce66a 2015-03-19) (built 2015-03-20) nightly. With the 2015-03-17, this works.