1 mod aliases_pub { 2 struct Priv; 3 mod m { 4 pub struct Pub3; 5 } 6 7 trait PrivTr { 8 type AssocAlias; 9 } 10 impl PrivTr for Priv { 11 type AssocAlias = m::Pub3; 12 } 13 14 impl <Priv as PrivTr>::AssocAlias { 15 //~^ ERROR no nominal type found for inherent implementation f(arg: Priv)16 pub fn f(arg: Priv) {} // private type `aliases_pub::Priv` in public interface 17 } 18 } 19 20 mod aliases_priv { 21 struct Priv; 22 struct Priv3; 23 24 trait PrivTr { 25 type AssocAlias; 26 } 27 impl PrivTr for Priv { 28 type AssocAlias = Priv3; 29 } 30 31 impl <Priv as PrivTr>::AssocAlias { 32 //~^ ERROR no nominal type found for inherent implementation f(arg: Priv)33 pub fn f(arg: Priv) {} // OK 34 } 35 } 36 main()37fn main() {} 38