1 #![feature(decl_macro, associated_type_defaults)]
2 #![allow(unused, private_in_public)]
8 pub trait PubTr: PrivTr {}
11 let _: Box<dyn PubTr<AssocTy = u8>>;
12 //~^ ERROR trait `PrivTr` is private
13 //~| ERROR trait `PrivTr` is private
14 type InSignatureTy2 = Box<dyn PubTr<AssocTy = u8>>;
15 //~^ ERROR trait `PrivTr` is private
16 trait InSignatureTr2: PubTr<AssocTy = u8> {}
17 //~^ ERROR trait `PrivTr` is private
20 let _: Box<dyn PrivTr<AssocTy = u8>>;
21 //~^ ERROR trait `PrivTr` is private
22 //~| ERROR trait `PrivTr` is private
23 type InSignatureTy1 = Box<dyn PrivTr<AssocTy = u8>>;
24 //~^ ERROR trait `PrivTr` is private
25 trait InSignatureTr1: PrivTr<AssocTy = u8> {}
26 //~^ ERROR trait `PrivTr` is private
36 mod priv_parent_substs {
37 pub trait PubTrWithParam<T = Priv> {
41 pub trait PubTr: PubTrWithParam<Priv> {}
44 let _: Box<dyn PubTrWithParam<AssocTy = u8>>;
45 //~^ ERROR type `Priv` is private
46 //~| ERROR type `Priv` is private
47 let _: Box<dyn PubTr<AssocTy = u8>>;
48 //~^ ERROR type `Priv` is private
49 //~| ERROR type `Priv` is private
50 pub type InSignatureTy1 = Box<dyn PubTrWithParam<AssocTy = u8>>;
51 //~^ ERROR type `Priv` is private
52 pub type InSignatureTy2 = Box<dyn PubTr<AssocTy = u8>>;
53 //~^ ERROR type `Priv` is private
54 trait InSignatureTr1: PubTrWithParam<AssocTy = u8> {}
55 //~^ ERROR type `Priv` is private
56 trait InSignatureTr2: PubTr<AssocTy = u8> {}
57 //~^ ERROR type `Priv` is private
60 fn priv_parent_substs() {
61 priv_parent_substs::mac!();