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