| #![deny(let_underscore_drop)] | |
| #![feature(type_alias_impl_trait)] | |
| pub struct Foo { | |
| /// This type must have nontrivial drop glue | |
| field: String, | |
| } | |
| pub type Tait = impl Sized; | |
| #[define_opaque(Tait)] | |
| pub fn ice_cold(beverage: Tait) { | |
| // Must destructure at least one field of `Foo` | |
| let Foo { field } = beverage; | |
| // boom | |
| _ = field; //~ ERROR non-binding let on a type that has a destructor | |
| let _ = field; //~ ERROR non-binding let on a type that has a destructor | |
| } | |
| pub fn main() {} |