// run-rustfix // See https://github.com/rust-lang/rust/issues/87955 #![deny(rust_2021_incompatible_closure_captures)] //~^ NOTE: the lint level is defined here #[derive(Debug)] struct Foo(i32); impl Drop for Foo { fn drop(&mut self) { println!("{:?} dropped", self.0); } } fn main() { let a = (Foo(0), Foo(1)); let _ = || { let _ = &a; dbg!(a.0) }; //~^ ERROR: drop order //~| NOTE: will only capture `a.0` //~| NOTE: for more information, see //~| HELP: add a dummy let to cause `a` to be fully captured } //~^ NOTE: dropped here