//@ revisions: current next //@ ignore-compare-mode-next-solver (explicit revisions) //@[next] compile-flags: -Znext-solver //@ run-pass #![feature(coroutines, coroutine_trait, stmt_expr_attributes)] #![allow(dropping_copy_types)] use std::marker::PhantomPinned; fn assert_unpin(_: G) { } fn main() { // Even though this coroutine holds a `PhantomPinned` in its environment, it // remains `Unpin`. assert_unpin(#[coroutine] || { let pinned = PhantomPinned; yield; drop(pinned); }); }