2020-06-20 00:45:09 -05:00
|
|
|
// Issue #63988
|
|
|
|
#[derive(Debug)]
|
|
|
|
struct S;
|
|
|
|
fn foo(_: Option<S>) {}
|
|
|
|
|
|
|
|
enum E {
|
|
|
|
V {
|
|
|
|
s: S,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
fn bar(_: E) {}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
let s = Some(S);
|
|
|
|
if let Some(mut x) = s {
|
|
|
|
x = S;
|
|
|
|
}
|
2020-08-08 12:16:43 -05:00
|
|
|
foo(s); //~ ERROR use of partially moved value: `s`
|
2020-06-20 00:45:09 -05:00
|
|
|
let mut e = E::V { s: S };
|
|
|
|
let E::V { s: mut x } = e;
|
|
|
|
x = S;
|
2020-08-08 12:16:43 -05:00
|
|
|
bar(e); //~ ERROR use of partially moved value: `e`
|
2020-06-20 00:45:09 -05:00
|
|
|
}
|