| //@ edition:2024 | |
| use core::marker::PhantomPinned; | |
| use core::pin::pin; | |
| fn a() { | |
| struct NotCopy<T>(T); | |
| #[allow(unused_mut)] | |
| let mut pointee = NotCopy(PhantomPinned); | |
| pin!(pointee); | |
| let _moved = pointee; | |
| //~^ ERROR use of moved value | |
| } | |
| fn b() { | |
| struct NotCopy<T>(T); | |
| let mut pointee = NotCopy(PhantomPinned); | |
| pin!(*&mut pointee); | |
| //~^ ERROR cannot move | |
| let _moved = pointee; | |
| } | |
| fn main() { | |
| a(); | |
| b(); | |
| } |