// build-pass // compile-flags:-Copt-level=0 // edition:2018 struct S(std::marker::PhantomData); impl std::ops::Deref for S { type Target = T; fn deref(&self) -> &Self::Target { todo!() } } impl std::ops::DerefMut for S { fn deref_mut(&mut self) -> &mut Self::Target { todo!() } } async fn new() -> S { todo!() } async fn crash() { *new().await = 1 + 1; } fn main() { let _ = crash(); }