summaryrefslogtreecommitdiffstats
path: root/tests/ui/closures/2229_closure_analysis/migrations/macro.rs
blob: 0f0c497492290b60fd769e64328d98d686c77970 (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 _ = || 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