]> git.lizzy.rs Git - rust.git/blob - src/test/ui/nll/decl-macro-illegal-copy.rs
Rollup merge of #57107 - mjbshaw:thread_local_test, r=nikomatsakis
[rust.git] / src / test / ui / nll / decl-macro-illegal-copy.rs
1 // Regression test for #46314
2
3 #![feature(nll)]
4 #![feature(decl_macro)]
5
6 struct NonCopy(String);
7
8 struct Wrapper {
9     inner: NonCopy,
10 }
11
12 macro inner_copy($wrapper:ident) {
13     $wrapper.inner
14 }
15
16 fn main() {
17     let wrapper = Wrapper {
18         inner: NonCopy("foo".into()),
19     };
20     assert_two_non_copy(
21         inner_copy!(wrapper),
22         wrapper.inner,
23         //~^ ERROR use of moved value: `wrapper.inner` [E0382]
24     );
25 }
26
27 fn assert_two_non_copy(a: NonCopy, b: NonCopy) {
28     assert_eq!(a.0, b.0);
29 }