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()37 fn main() {}
38