| error[E0308]: mismatched types |
| --> $DIR/missing-bounds.rs:11:11 |
| | |
| LL | impl<B> Add for A<B> where B: Add { |
| | - this type parameter |
| ... |
| LL | A(self.0 + rhs.0) |
| | ^^^^^^^^^^^^^^ expected type parameter `B`, found associated type |
| | |
| = note: expected type parameter `B` |
| found associated type `<B as std::ops::Add>::Output` |
| help: consider further restricting this bound |
| | |
| LL | impl<B> Add for A<B> where B: Add + std::ops::Add<Output = B> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| error[E0308]: mismatched types |
| --> $DIR/missing-bounds.rs:21:14 |
| | |
| LL | impl<B: Add> Add for C<B> { |
| | - this type parameter |
| ... |
| LL | Self(self.0 + rhs.0) |
| | ^^^^^^^^^^^^^^ expected type parameter `B`, found associated type |
| | |
| = note: expected type parameter `B` |
| found associated type `<B as std::ops::Add>::Output` |
| help: consider further restricting this bound |
| | |
| LL | impl<B: Add + std::ops::Add<Output = B>> Add for C<B> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| error[E0369]: cannot add `B` to `B` |
| --> $DIR/missing-bounds.rs:31:21 |
| | |
| LL | Self(self.0 + rhs.0) |
| | ------ ^ ----- B |
| | | |
| | B |
| | |
| help: consider restricting type parameter `B` |
| | |
| LL | impl<B: std::ops::Add<Output = B>> Add for D<B> { |
| | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| error: aborting due to 3 previous errors |
| |
| Some errors have detailed explanations: E0308, E0369. |
| For more information about an error, try `rustc --explain E0308`. |