1error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Foo<_, _>` 2 --> tests/ui/pin_project/conflict-unpin.rs:5:1 3 | 45 | / pin_project! { //~ ERROR E0119 56 | | struct Foo<T, U> { 67 | | #[pin] 78 | | future: T, 89 | | field: U, 910 | | } 1011 | | } 11 | |_^ conflicting implementation for `Foo<_, _>` 12... 1314 | impl<T, U> Unpin for Foo<T, U> where T: Unpin {} // Conditional Unpin impl 14 | --------------------------------------------- first implementation here 15 | 16 = note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` (in Nightly builds, run with -Z macro-backtrace for more info) 17 18error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Bar<_, _>` 19 --> tests/ui/pin_project/conflict-unpin.rs:18:1 20 | 2118 | / pin_project! { //~ ERROR E0119 2219 | | struct Bar<T, U> { 2320 | | #[pin] 2421 | | future: T, 2522 | | field: U, 2623 | | } 2724 | | } 28 | |_^ conflicting implementation for `Bar<_, _>` 29... 3027 | impl<T, U> Unpin for Bar<T, U> {} // Non-conditional Unpin impl 31 | ------------------------------ first implementation here 32 | 33 = note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` (in Nightly builds, run with -Z macro-backtrace for more info) 34 35error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Baz<_, _>` 36 --> tests/ui/pin_project/conflict-unpin.rs:29:1 37 | 3829 | / pin_project! { //~ ERROR E0119 3930 | | struct Baz<T, U> { 4031 | | #[pin] 4132 | | future: T, 4233 | | field: U, 4334 | | } 4435 | | } 45 | |_^ conflicting implementation for `Baz<_, _>` 46... 4738 | impl<T: Unpin, U: Unpin> Unpin for Baz<T, U> {} // Conditional Unpin impl 48 | -------------------------------------------- first implementation here 49 | 50 = note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` (in Nightly builds, run with -Z macro-backtrace for more info) 51