error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Foo<_, _>` --> tests/ui/pin_project/conflict-unpin.rs:5:1 | 5 | / pin_project! { //~ ERROR E0119 6 | | struct Foo { 7 | | #[pin] 8 | | future: T, 9 | | field: U, 10 | | } 11 | | } | |_^ conflicting implementation for `Foo<_, _>` ... 14 | impl Unpin for Foo where T: Unpin {} // Conditional Unpin impl | --------------------------------------------- first implementation here | = note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Bar<_, _>` --> tests/ui/pin_project/conflict-unpin.rs:18:1 | 18 | / pin_project! { //~ ERROR E0119 19 | | struct Bar { 20 | | #[pin] 21 | | future: T, 22 | | field: U, 23 | | } 24 | | } | |_^ conflicting implementation for `Bar<_, _>` ... 27 | impl Unpin for Bar {} // Non-conditional Unpin impl | ------------------------------ first implementation here | = note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0119]: conflicting implementations of trait `std::marker::Unpin` for type `Baz<_, _>` --> tests/ui/pin_project/conflict-unpin.rs:29:1 | 29 | / pin_project! { //~ ERROR E0119 30 | | struct Baz { 31 | | #[pin] 32 | | future: T, 33 | | field: U, 34 | | } 35 | | } | |_^ conflicting implementation for `Baz<_, _>` ... 38 | impl Unpin for Baz {} // Conditional Unpin impl | -------------------------------------------- first implementation here | = note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` (in Nightly builds, run with -Z macro-backtrace for more info)