// Regression test for #46314 | |
#![feature(decl_macro)] | |
struct NonCopy(String); | |
struct Wrapper { | |
inner: NonCopy, | |
} | |
macro inner_copy($wrapper:ident) { | |
$wrapper.inner | |
} | |
fn main() { | |
let wrapper = Wrapper { | |
inner: NonCopy("foo".into()), | |
}; | |
assert_two_non_copy( | |
inner_copy!(wrapper), | |
wrapper.inner, | |
//~^ ERROR use of moved value: `wrapper.inner` [E0382] | |
); | |
} | |
fn assert_two_non_copy(a: NonCopy, b: NonCopy) { | |
assert_eq!(a.0, b.0); | |
} |