1error: `impl` associated type signature for `A` doesn't match `trait` associated type signature 2 --> $DIR/impl_bounds.rs:15:5 3 | 4LL | type A<'a> where Self: 'a; 5 | -------------------------- expected 6... 7LL | type A<'a> where Self: 'static = (&'a ()); 8 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found 9 10error: `impl` associated type signature for `B` doesn't match `trait` associated type signature 11 --> $DIR/impl_bounds.rs:17:5 12 | 13LL | type B<'a, 'b> where 'a: 'b; 14 | ---------------------------- expected 15... 16LL | type B<'a, 'b> where 'b: 'a = (&'a(), &'b ()); 17 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found 18 19error[E0478]: lifetime bound not satisfied 20 --> $DIR/impl_bounds.rs:17:5 21 | 22LL | type B<'a, 'b> where 'b: 'a = (&'a(), &'b ()); 23 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 24 | 25note: lifetime parameter instantiated with the lifetime `'a` as defined here 26 --> $DIR/impl_bounds.rs:17:12 27 | 28LL | type B<'a, 'b> where 'b: 'a = (&'a(), &'b ()); 29 | ^^ 30note: but lifetime parameter must outlive the lifetime `'b` as defined here 31 --> $DIR/impl_bounds.rs:17:16 32 | 33LL | type B<'a, 'b> where 'b: 'a = (&'a(), &'b ()); 34 | ^^ 35 36error[E0277]: the trait bound `T: Copy` is not satisfied 37 --> $DIR/impl_bounds.rs:20:5 38 | 39LL | type C where Self: Copy = String; 40 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `T` 41 | 42note: required because of the requirements on the impl of `Copy` for `Fooy<T>` 43 --> $DIR/impl_bounds.rs:11:10 44 | 45LL | #[derive(Copy, Clone)] 46 | ^^^^ 47note: the requirement `Fooy<T>: Copy` appears on the associated impl type `C` but not on the corresponding associated trait type 48 --> $DIR/impl_bounds.rs:7:5 49 | 50LL | trait Foo { 51 | --- in this trait 52... 53LL | type C where Self: Clone; 54 | ^^^^^^^^^^^^^^^^^^^^^^^^^ this trait associated type doesn't have the requirement `Fooy<T>: Copy` 55 = note: this error originates in the derive macro `Copy` (in Nightly builds, run with -Z macro-backtrace for more info) 56help: consider restricting type parameter `T` 57 | 58LL | impl<T: std::marker::Copy> Foo for Fooy<T> { 59 | +++++++++++++++++++ 60 61error[E0277]: the trait bound `T: Copy` is not satisfied 62 --> $DIR/impl_bounds.rs:22:24 63 | 64LL | fn d() where Self: Copy {} 65 | ^^^^ the trait `Copy` is not implemented for `T` 66 | 67note: required because of the requirements on the impl of `Copy` for `Fooy<T>` 68 --> $DIR/impl_bounds.rs:11:10 69 | 70LL | #[derive(Copy, Clone)] 71 | ^^^^ 72note: the requirement `Fooy<T>: Copy` appears on the impl method `d` but not on the corresponding trait method 73 --> $DIR/impl_bounds.rs:8:8 74 | 75LL | trait Foo { 76 | --- in this trait 77... 78LL | fn d() where Self: Clone; 79 | ^ this trait method doesn't have the requirement `Fooy<T>: Copy` 80 = note: this error originates in the derive macro `Copy` (in Nightly builds, run with -Z macro-backtrace for more info) 81help: consider restricting type parameter `T` 82 | 83LL | impl<T: std::marker::Copy> Foo for Fooy<T> { 84 | +++++++++++++++++++ 85 86error: aborting due to 5 previous errors 87 88Some errors have detailed explanations: E0277, E0478. 89For more information about an error, try `rustc --explain E0277`. 90