1error[E0119]: conflicting implementations of trait `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` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info) 17 18error[E0119]: conflicting implementations of trait `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` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info) 34 35error[E0119]: conflicting implementations of trait `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` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info) 51 52error[E0119]: conflicting implementations of trait `Unpin` for type `Qux<_, _>` 53 --> tests/ui/pin_project/conflict-unpin.rs:40:1 54 | 5540 | / pin_project! { //~ ERROR E0119 5641 | | #[project(!Unpin)] 5742 | | struct Qux<T, U> { 5843 | | #[pin] 59... | 6046 | | } 6147 | | } 62 | |_^ conflicting implementation for `Qux<_, _>` 63... 6450 | impl<T, U> Unpin for Qux<T, U> {} // Non-conditional Unpin impl 65 | ------------------------------ first implementation here 66 | 67 = note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info) 68 69error[E0119]: conflicting implementations of trait `Unpin` for type `Fred<_, _>` 70 --> tests/ui/pin_project/conflict-unpin.rs:52:1 71 | 7252 | / pin_project! { //~ ERROR E0119 7353 | | #[project(!Unpin)] 7454 | | struct Fred<T, U> { 7555 | | #[pin] 76... | 7758 | | } 7859 | | } 79 | |_^ conflicting implementation for `Fred<_, _>` 80... 8162 | impl<T: Unpin, U: Unpin> Unpin for Fred<T, U> {} // Conditional Unpin impl 82 | --------------------------------------------- first implementation here 83 | 84 = note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info) 85