rust/tests/ui/closures/2229_closure_analysis/migrations/macro.fixed

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

26 lines
577 B
Rust
Raw Normal View History

// run-rustfix
// See https://github.com/rust-lang/rust/issues/87955
#![deny(rust_2021_incompatible_closure_captures)]
//~^ NOTE: the lint level is defined here
2021-09-21 03:05:11 -05:00
#[derive(Debug)]
struct Foo(i32);
impl Drop for Foo {
fn drop(&mut self) {
println!("{:?} dropped", self.0);
}
}
fn main() {
2021-09-21 03:05:11 -05:00
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