1 error[E0225]: only auto traits can be used as additional traits in a trait object
2 --> $DIR/missing-associated-types.rs:12:32
4 LL | type Foo<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Y<Rhs>;
7 | | additional non-auto trait
8 | | trait alias used in trait object type (additional use)
10 | trait alias used in trait object type (first use)
12 error[E0191]: the value of the associated types `A` (from trait `Y`), `Output` (from trait `std::ops::Add`), `Output` (from trait `std::ops::Mul`), `Output` (from trait `std::ops::Sub`) must be specified
13 --> $DIR/missing-associated-types.rs:12:21
16 | ------- `A` defined here
18 LL | type Foo<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Y<Rhs>;
19 | ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^^^ associated type `A` must be specified
21 | | | associated type `Output` must be specified
22 | | associated type `Output` must be specified
23 | associated type `Output` must be specified
25 help: specify the associated types
27 LL | type Foo<Rhs> = dyn Add<Rhs, Output = Type> + Sub<Rhs, Output = Type> + X<Rhs, Output = Type> + Y<Rhs, A = Type>;
28 | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
30 error[E0225]: only auto traits can be used as additional traits in a trait object
31 --> $DIR/missing-associated-types.rs:15:32
33 LL | type Bar<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Z<Rhs>;
36 | | additional non-auto trait
37 | | trait alias used in trait object type (additional use)
38 | first non-auto trait
39 | trait alias used in trait object type (first use)
41 error[E0191]: the value of the associated types `A` (from trait `Z`), `B` (from trait `Z`), `Output` (from trait `std::ops::Add`), `Output` (from trait `std::ops::Div`), `Output` (from trait `std::ops::Div`), `Output` (from trait `std::ops::Mul`), `Output` (from trait `std::ops::Sub`) must be specified
42 --> $DIR/missing-associated-types.rs:15:21
45 | ------- `A` defined here
47 | ------- `B` defined here
49 LL | type Bar<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Z<Rhs>;
50 | ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^^^ associated types `A`, `B`, `Output` must be specified
52 | | | associated types `Output` (from trait `std::ops::Mul`), `Output` (from trait `std::ops::Div`) must be specified
53 | | associated type `Output` must be specified
54 | associated type `Output` must be specified
56 help: 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
59 LL | type Bar<Rhs> = dyn Add<Rhs> + Sub<Rhs> + X<Rhs> + Z<Rhs>;
61 help: specify the associated types
63 LL | type Bar<Rhs> = dyn Add<Rhs, Output = Type> + Sub<Rhs, Output = Type> + X<Rhs> + Z<Rhs, A = Type, B = Type, Output = Type>;
64 | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
66 error[E0225]: only auto traits can be used as additional traits in a trait object
67 --> $DIR/missing-associated-types.rs:18:32
69 LL | type Baz<Rhs> = dyn Add<Rhs> + Sub<Rhs> + Y<Rhs>;
72 | | additional non-auto trait
73 | | trait alias used in trait object type (additional use)
74 | first non-auto trait
75 | trait alias used in trait object type (first use)
77 error[E0191]: the value of the associated types `A` (from trait `Y`), `Output` (from trait `std::ops::Add`), `Output` (from trait `std::ops::Sub`) must be specified
78 --> $DIR/missing-associated-types.rs:18:21
81 | ------- `A` defined here
83 LL | type Baz<Rhs> = dyn Add<Rhs> + Sub<Rhs> + Y<Rhs>;
84 | ^^^^^^^^ ^^^^^^^^ ^^^^^^ associated type `A` must be specified
86 | | associated type `Output` must be specified
87 | associated type `Output` must be specified
89 help: specify the associated types
91 LL | type Baz<Rhs> = dyn Add<Rhs, Output = Type> + Sub<Rhs, Output = Type> + Y<Rhs, A = Type>;
92 | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
94 error[E0225]: only auto traits can be used as additional traits in a trait object
95 --> $DIR/missing-associated-types.rs:21:32
97 LL | type Bat<Rhs> = dyn Add<Rhs> + Sub<Rhs> + Fine<Rhs>;
100 | | additional non-auto trait
101 | | trait alias used in trait object type (additional use)
102 | first non-auto trait
103 | trait alias used in trait object type (first use)
105 error[E0191]: the value of the associated types `Output` (from trait `std::ops::Add`), `Output` (from trait `std::ops::Sub`) must be specified
106 --> $DIR/missing-associated-types.rs:21:21
108 LL | type Bat<Rhs> = dyn Add<Rhs> + Sub<Rhs> + Fine<Rhs>;
109 | ^^^^^^^^ ^^^^^^^^ associated type `Output` must be specified
111 | associated type `Output` must be specified
113 help: specify the associated types
115 LL | type Bat<Rhs> = dyn Add<Rhs, Output = Type> + Sub<Rhs, Output = Type> + Fine<Rhs>;
116 | ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^
118 error[E0191]: the value of the associated types `Output` (from trait `std::ops::Div`), `Output` (from trait `std::ops::Mul`) must be specified
119 --> $DIR/missing-associated-types.rs:24:21
121 LL | type Bal<Rhs> = dyn X<Rhs>;
122 | ^^^^^^ associated types `Output` (from trait `std::ops::Mul`), `Output` (from trait `std::ops::Div`) must be specified
124 = help: consider introducing a new type parameter, adding `where` constraints using the fully-qualified path to the associated types
126 error: aborting due to 9 previous errors
128 Some errors have detailed explanations: E0191, E0225.
129 For more information about an error, try `rustc --explain E0191`.