error[E0277]: the trait bound `std::marker::PhantomPinned: std::marker::Unpin` is not satisfied in `_::__Origin<'_, std::marker::PhantomPinned, ()>` --> $DIR/proper_unpin.rs:34:5 | 31 | fn is_unpin() {} | -------- ----- required by this bound in `is_unpin` ... 34 | is_unpin::>(); //~ ERROR E0277 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ within `_::__Origin<'_, std::marker::PhantomPinned, ()>`, the trait `std::marker::Unpin` is not implemented for `std::marker::PhantomPinned` | = help: the following implementations were found: = note: required because it appears within the type `Inner` = note: required because it appears within the type `_::__Origin<'_, std::marker::PhantomPinned, ()>` = note: required because of the requirements on the impl of `std::marker::Unpin` for `Foo` error[E0277]: the trait bound `std::marker::PhantomPinned: std::marker::Unpin` is not satisfied in `_::__Origin<'_, std::marker::PhantomPinned, std::marker::PhantomPinned>` --> $DIR/proper_unpin.rs:36:5 | 31 | fn is_unpin() {} | -------- ----- required by this bound in `is_unpin` ... 36 | is_unpin::>(); //~ ERROR E0277 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ within `_::__Origin<'_, std::marker::PhantomPinned, std::marker::PhantomPinned>`, the trait `std::marker::Unpin` is not implemented for `std::marker::PhantomPinned` | = help: the following implementations were found: = note: required because it appears within the type `Inner` = note: required because it appears within the type `_::__Origin<'_, std::marker::PhantomPinned, std::marker::PhantomPinned>` = note: required because of the requirements on the impl of `std::marker::Unpin` for `Foo` error[E0277]: the trait bound `std::marker::PhantomPinned: std::marker::Unpin` is not satisfied in `_::__Origin<'_>` --> $DIR/proper_unpin.rs:38:5 | 31 | fn is_unpin() {} | -------- ----- required by this bound in `is_unpin` ... 38 | is_unpin::(); //~ ERROR E0277 | ^^^^^^^^^^^^^^^^^^^^^^^^^ within `_::__Origin<'_>`, the trait `std::marker::Unpin` is not implemented for `std::marker::PhantomPinned` | = help: the following implementations were found: = note: required because it appears within the type `_::__Origin<'_>` = note: required because of the requirements on the impl of `std::marker::Unpin` for `TrivialBounds`