//@ run-rustfix #![allow(unused)] struct S(String); impl Drop for S { fn drop(&mut self) { } } fn move_in_match() { match S("foo".to_string()) { //~^ ERROR cannot move out of type `S`, which implements the `Drop` trait S(ref _s) => {} } } fn move_in_let() { let S(ref _s) = S("foo".to_string()); //~^ ERROR cannot move out of type `S`, which implements the `Drop` trait } fn move_in_fn_arg(S(ref _s): S) { //~^ ERROR cannot move out of type `S`, which implements the `Drop` trait } fn main() {}