1 error: equality constraints are not yet supported in `where` clauses
2 --> $DIR/missing-bounds.rs:37:33
4 LL | impl<B: Add> Add for E<B> where <B as Add>::Output = B {
5 | ^^^^^^^^^^^^^^^^^^^^^^ not supported
7 = note: see issue #20041 <https://github.com/rust-lang/rust/issues/20041> for more information
8 help: if `Output` is an associated type you're trying to set, use the associated type binding syntax
10 LL | impl<B: Add> Add for E<B> where B: Add<Output = B> {
13 error[E0308]: mismatched types
14 --> $DIR/missing-bounds.rs:11:11
16 LL | impl<B> Add for A<B> where B: Add {
17 | - this type parameter
19 LL | A(self.0 + rhs.0)
20 | - ^^^^^^^^^^^^^^ expected type parameter `B`, found associated type
22 | arguments to this struct are incorrect
24 = note: expected type parameter `B`
25 found associated type `<B as Add>::Output`
26 note: tuple struct defined here
27 --> $DIR/missing-bounds.rs:5:8
31 help: consider further restricting this bound
33 LL | impl<B> Add for A<B> where B: Add + Add<Output = B> {
36 error[E0308]: mismatched types
37 --> $DIR/missing-bounds.rs:21:14
39 LL | impl<B: Add> Add for C<B> {
40 | - this type parameter
42 LL | Self(self.0 + rhs.0)
43 | ---- ^^^^^^^^^^^^^^ expected type parameter `B`, found associated type
45 | arguments to this function are incorrect
47 = note: expected type parameter `B`
48 found associated type `<B as Add>::Output`
49 note: tuple struct defined here
50 --> $DIR/missing-bounds.rs:15:8
54 help: consider further restricting this bound
56 LL | impl<B: Add + Add<Output = B>> Add for C<B> {
59 error[E0369]: cannot add `B` to `B`
60 --> $DIR/missing-bounds.rs:31:21
62 LL | Self(self.0 + rhs.0)
67 help: consider restricting type parameter `B`
69 LL | impl<B: std::ops::Add<Output=B>> Add for D<B> {
70 | +++++++++++++++++++++++++
72 error[E0308]: mismatched types
73 --> $DIR/missing-bounds.rs:42:14
75 LL | impl<B: Add> Add for E<B> where <B as Add>::Output = B {
76 | - this type parameter
78 LL | Self(self.0 + rhs.0)
79 | ---- ^^^^^^^^^^^^^^ expected type parameter `B`, found associated type
81 | arguments to this function are incorrect
83 = note: expected type parameter `B`
84 found associated type `<B as Add>::Output`
85 note: tuple struct defined here
86 --> $DIR/missing-bounds.rs:35:8
90 help: consider further restricting this bound
92 LL | impl<B: Add + Add<Output = B>> Add for E<B> where <B as Add>::Output = B {
95 error: aborting due to 5 previous errors
97 Some errors have detailed explanations: E0308, E0369.
98 For more information about an error, try `rustc --explain E0308`.