1 pub trait DeclaredTrait {
5 impl DeclaredTrait for i32 {
13 impl WhereTrait for i32 {
17 // Make sure we don't add a bound that just shares a name with an associated
23 #[derive(PartialEq, Debug)]
24 struct PrivateStruct<T>(T);
26 #[derive(PartialEq, Debug)]
27 struct TupleStruct<A, B: DeclaredTrait, C>(
35 <B as DeclaredTrait>::Type,
36 Option<<B as DeclaredTrait>::Type>,
40 <C as WhereTrait>::Type,
41 Option<<C as WhereTrait>::Type>,
42 <i32 as DeclaredTrait>::Type,
47 #[derive(PartialEq, Debug)]
48 pub struct Struct<A, B: DeclaredTrait, C>
53 m2: Option<module::Type>,
59 b3: <B as DeclaredTrait>::Type,
60 b4: Option<<B as DeclaredTrait>::Type>,
64 c3: <C as WhereTrait>::Type,
65 c4: Option<<C as WhereTrait>::Type>,
66 d: <i32 as DeclaredTrait>::Type,
69 #[derive(PartialEq, Debug)]
70 enum Enum<A, B: DeclaredTrait, C>
83 <B as DeclaredTrait>::Type,
84 Option<<B as DeclaredTrait>::Type>,
88 <C as WhereTrait>::Type,
89 Option<<C as WhereTrait>::Type>,
90 <i32 as DeclaredTrait>::Type,
94 m2: Option<module::Type>,
100 b3: <B as DeclaredTrait>::Type,
101 b4: Option<<B as DeclaredTrait>::Type>,
105 c3: <C as WhereTrait>::Type,
106 c4: Option<<C as WhereTrait>::Type>,
107 d: <i32 as DeclaredTrait>::Type,
112 let e: Enum<i32, i32, i32> =
113 Enum::Seq(0, None, 0, PrivateStruct(0), 0, 0, None, 0, None, 0, 0, None, 0, None, 0);
116 let e: Enum<i32, i32, i32> = Enum::Map {
120 a2: PrivateStruct(0),
134 let e: TupleStruct<i32, i32, i32> =
135 TupleStruct(0, None, 0, PrivateStruct(0), 0, 0, None, 0, None, 0, 0, None, 0, None, 0);
138 let e: Struct<i32, i32, i32> = Struct {
142 a2: PrivateStruct(0),
157 let e = Enum::Unit::<i32, i32, i32>;