use pin_project_lite::pin_project; | |
// In `Drop` impl, the implementor must specify the same requirement as type definition. | |
struct DropImpl<T> { | |
f: T, | |
} | |
impl<T: Unpin> Drop for DropImpl<T> { | |
//~^ ERROR E0367 | |
fn drop(&mut self) {} | |
} | |
pin_project! { | |
//~^ ERROR E0367 | |
struct PinnedDropImpl<T> { | |
#[pin] | |
f: T, | |
} | |
impl<T: Unpin> PinnedDrop for PinnedDropImpl<T> { | |
fn drop(_this: Pin<&mut Self>) {} | |
} | |
} | |
fn main() {} |