2 pub trait DeclaredTrait {
6 impl DeclaredTrait for i32 {
10 pub trait WhereTrait {
14 impl WhereTrait for i32 {
18 // Make sure we don't add a bound that just shares a name with an associated
24 #[derive(PartialEq, Debug)]
25 struct PrivateStruct<T>(T);
27 #[derive(PartialEq, Debug)]
28 struct TupleStruct<A, B: DeclaredTrait, C>(
36 <B as DeclaredTrait>::Type,
37 Option<<B as DeclaredTrait>::Type>,
41 <C as WhereTrait>::Type,
42 Option<<C as WhereTrait>::Type>,
43 <i32 as DeclaredTrait>::Type,
44 ) where C: WhereTrait;
46 #[derive(PartialEq, Debug)]
47 pub struct Struct<A, B: DeclaredTrait, C> where C: WhereTrait {
49 m2: Option<module::Type>,
55 b3: <B as DeclaredTrait>::Type,
56 b4: Option<<B as DeclaredTrait>::Type>,
60 c3: <C as WhereTrait>::Type,
61 c4: Option<<C as WhereTrait>::Type>,
62 d: <i32 as DeclaredTrait>::Type,
65 #[derive(PartialEq, Debug)]
66 enum Enum<A, B: DeclaredTrait, C> where C: WhereTrait {
76 <B as DeclaredTrait>::Type,
77 Option<<B as DeclaredTrait>::Type>,
81 <C as WhereTrait>::Type,
82 Option<<C as WhereTrait>::Type>,
83 <i32 as DeclaredTrait>::Type,
87 m2: Option<module::Type>,
93 b3: <B as DeclaredTrait>::Type,
94 b4: Option<<B as DeclaredTrait>::Type>,
98 c3: <C as WhereTrait>::Type,
99 c4: Option<<C as WhereTrait>::Type>,
100 d: <i32 as DeclaredTrait>::Type,
136 a2: PrivateStruct(0),
151 let e = Enum::Unit::<i32, i32, i32>;
185 a2: PrivateStruct(0),