error[E0507]: cannot move out of `x.0`, as `x` is a captured variable in an `Fn` closure --> $DIR/issue-52663-span-decl-captured-variable.rs:8:26 | LL | let x = (vec![22], vec![44]); | - -------------------- move occurs because `x.0` has type `Vec`, which does not implement the `Copy` trait | | | captured outer variable LL | expect_fn(|| drop(x.0)); | -- ^^^ `x.0` is moved here | | | captured by this `Fn` closure | help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but an `FnOnce` consume them only once --> $DIR/issue-52663-span-decl-captured-variable.rs:1:33 | LL | fn expect_fn(f: F) where F : Fn() { | ^^^^ help: consider cloning the value if the performance cost is acceptable | LL | expect_fn(|| drop(x.0.clone())); | ++++++++ error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0507`.