1error[E0225]: only auto traits can be used as additional traits in a trait object
2  --> $DIR/missing-associated-types.rs:12:32
3   |
4LL | type Foo<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Y<Rhs>;
5   |                     --------   ^^^^^^^^ additional non-auto trait
6   |                     |
7   |                     first non-auto trait
8   |
9   = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Add<Rhs> + Sub<Rhs> + X<Rhs> + Y<Rhs> {}`
10   = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
11
12error[E0191]: the value of the associated types `A` (from trait `Y`), `Output` (from trait `Add`), `Output` (from trait `Mul`), `Output` (from trait `Sub`) must be specified
13  --> $DIR/missing-associated-types.rs:12:21
14   |
15LL |     type A;
16   |     ------- `A` defined here
17...
18LL | type Foo<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Y<Rhs>;
19   |                     ^^^^^^^^   ^^^^^^^^   ^^^^^^   ^^^^^^ associated type `A` must be specified
20   |                     |          |          |
21   |                     |          |          associated type `Output` must be specified
22   |                     |          associated type `Output` must be specified
23   |                     associated type `Output` must be specified
24   |
25help: specify the associated types
26   |
27LL | type Foo<Rhs> = dyn Add<Rhs, Output = Type> + Sub<Rhs, Output = Type> + X<Rhs, Output = Type> + Y<Rhs, A = Type>;
28   |                     ~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~
29
30error[E0225]: only auto traits can be used as additional traits in a trait object
31  --> $DIR/missing-associated-types.rs:15:32
32   |
33LL | type Bar<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Z<Rhs>;
34   |                     --------   ^^^^^^^^ additional non-auto trait
35   |                     |
36   |                     first non-auto trait
37   |
38   = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Add<Rhs> + Sub<Rhs> + X<Rhs> + Z<Rhs> {}`
39   = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
40
41error[E0191]: the value of the associated types `A` (from trait `Z`), `B` (from trait `Z`), `Output` (from trait `Add`), `Output` (from trait `Div`), `Output` (from trait `Div`), `Output` (from trait `Mul`), `Output` (from trait `Sub`) must be specified
42  --> $DIR/missing-associated-types.rs:15:21
43   |
44LL |     type A;
45   |     ------- `A` defined here
46LL |     type B;
47   |     ------- `B` defined here
48...
49LL | type Bar<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Z<Rhs>;
50   |                     ^^^^^^^^   ^^^^^^^^   ^^^^^^   ^^^^^^ associated types `A`, `B`, `Output` must be specified
51   |                     |          |          |
52   |                     |          |          associated types `Output` (from trait `Mul`), `Output` (from trait `Div`) must be specified
53   |                     |          associated type `Output` must be specified
54   |                     associated type `Output` must be specified
55   |
56help: consider introducing a new type parameter, adding `where` constraints using the fully-qualified path to the associated types
57  --> $DIR/missing-associated-types.rs:15:43
58   |
59LL | type Bar<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Z<Rhs>;
60   |                                           ^^^^^^
61help: specify the associated types
62   |
63LL | type Bar<Rhs> = dyn Add<Rhs, Output = Type> + Sub<Rhs, Output = Type> + X<Rhs> + Z<Rhs, A = Type, B = Type, Output = Type>;
64   |                     ~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
65
66error[E0225]: only auto traits can be used as additional traits in a trait object
67  --> $DIR/missing-associated-types.rs:18:32
68   |
69LL | type Baz<Rhs> = dyn Add<Rhs> + Sub<Rhs> + Y<Rhs>;
70   |                     --------   ^^^^^^^^ additional non-auto trait
71   |                     |
72   |                     first non-auto trait
73   |
74   = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Add<Rhs> + Sub<Rhs> + Y<Rhs> {}`
75   = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
76
77error[E0191]: the value of the associated types `A` (from trait `Y`), `Output` (from trait `Add`), `Output` (from trait `Sub`) must be specified
78  --> $DIR/missing-associated-types.rs:18:21
79   |
80LL |     type A;
81   |     ------- `A` defined here
82...
83LL | type Baz<Rhs> = dyn Add<Rhs> + Sub<Rhs> + Y<Rhs>;
84   |                     ^^^^^^^^   ^^^^^^^^   ^^^^^^ associated type `A` must be specified
85   |                     |          |
86   |                     |          associated type `Output` must be specified
87   |                     associated type `Output` must be specified
88   |
89help: specify the associated types
90   |
91LL | type Baz<Rhs> = dyn Add<Rhs, Output = Type> + Sub<Rhs, Output = Type> + Y<Rhs, A = Type>;
92   |                     ~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~
93
94error[E0225]: only auto traits can be used as additional traits in a trait object
95  --> $DIR/missing-associated-types.rs:21:32
96   |
97LL | type Bat<Rhs> = dyn Add<Rhs> + Sub<Rhs> + Fine<Rhs>;
98   |                     --------   ^^^^^^^^ additional non-auto trait
99   |                     |
100   |                     first non-auto trait
101   |
102   = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Add<Rhs> + Sub<Rhs> + Fine<Rhs> {}`
103   = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
104
105error[E0191]: the value of the associated types `Output` (from trait `Add`), `Output` (from trait `Sub`) must be specified
106  --> $DIR/missing-associated-types.rs:21:21
107   |
108LL | type Bat<Rhs> = dyn Add<Rhs> + Sub<Rhs> + Fine<Rhs>;
109   |                     ^^^^^^^^   ^^^^^^^^ associated type `Output` must be specified
110   |                     |
111   |                     associated type `Output` must be specified
112   |
113help: specify the associated types
114   |
115LL | type Bat<Rhs> = dyn Add<Rhs, Output = Type> + Sub<Rhs, Output = Type> + Fine<Rhs>;
116   |                     ~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~
117
118error[E0191]: the value of the associated types `Output` (from trait `Div`), `Output` (from trait `Mul`) must be specified
119  --> $DIR/missing-associated-types.rs:24:21
120   |
121LL | type Bal<Rhs> = dyn X<Rhs>;
122   |                     ^^^^^^ associated types `Output` (from trait `Mul`), `Output` (from trait `Div`) must be specified
123   |
124   = help: consider introducing a new type parameter, adding `where` constraints using the fully-qualified path to the associated types
125
126error: aborting due to 9 previous errors
127
128Some errors have detailed explanations: E0191, E0225.
129For more information about an error, try `rustc --explain E0191`.
130