error: changes to closure capture in Rust 2021 will affect drop order --> $DIR/precise.rs:20:13 | LL | let c = || { | ^^ ... LL | let _t = t.0; | --- in Rust 2018, this closure captures all of `t`, but in Rust 2021, it will only capture `t.0` ... LL | } | - in Rust 2018, `t` is dropped here, but in Rust 2021, only `t.0` will be dropped here as part of the closure | = note: for more information, see note: the lint level is defined here --> $DIR/precise.rs:3:9 | LL | #![deny(rust_2021_incompatible_closure_captures)] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a dummy let to cause `t` to be fully captured | LL ~ let c = || { LL + let _ = &t; | error: changes to closure capture in Rust 2021 will affect drop order --> $DIR/precise.rs:45:13 | LL | let c = || { | ^^ ... LL | let _x = u.0.0; | ----- in Rust 2018, this closure captures all of `u`, but in Rust 2021, it will only capture `u.0.0` LL | LL | let _x = u.0.1; | ----- in Rust 2018, this closure captures all of `u`, but in Rust 2021, it will only capture `u.0.1` LL | LL | let _x = u.1.0; | ----- in Rust 2018, this closure captures all of `u`, but in Rust 2021, it will only capture `u.1.0` ... LL | } | - | | | in Rust 2018, `u` is dropped here, but in Rust 2021, only `u.0.0` will be dropped here as part of the closure | in Rust 2018, `u` is dropped here, but in Rust 2021, only `u.0.1` will be dropped here as part of the closure | in Rust 2018, `u` is dropped here, but in Rust 2021, only `u.1.0` will be dropped here as part of the closure | = note: for more information, see help: add a dummy let to cause `u` to be fully captured | LL ~ let c = || { LL + let _ = &u; | error: aborting due to 2 previous errors