diff options
Diffstat (limited to 'tests/ui/coroutine/non-static-is-unpin.rs')
-rw-r--r-- | tests/ui/coroutine/non-static-is-unpin.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/ui/coroutine/non-static-is-unpin.rs b/tests/ui/coroutine/non-static-is-unpin.rs new file mode 100644 index 000000000..238e49bbf --- /dev/null +++ b/tests/ui/coroutine/non-static-is-unpin.rs @@ -0,0 +1,21 @@ +// revisions: current next +//[next] compile-flags: -Znext-solver +// run-pass + +#![feature(coroutines, coroutine_trait)] +#![allow(dropping_copy_types)] + +use std::marker::PhantomPinned; + +fn assert_unpin<G: Unpin>(_: G) { +} + +fn main() { + // Even though this coroutine holds a `PhantomPinned` in its environment, it + // remains `Unpin`. + assert_unpin(|| { + let pinned = PhantomPinned; + yield; + drop(pinned); + }); +} |