summaryrefslogtreecommitdiffstats
path: root/tests/ui/closures/2229_closure_analysis/migrations/macro.fixed
blob: 31fe494dc795a900620a2ac511adf7963e342b36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 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