]> git.lizzy.rs Git - rust.git/blob - src/test/ui/closures/2229_closure_analysis/simple-struct-min-capture.rs
Add initial set of testcases for RFC 2229
[rust.git] / src / test / ui / closures / 2229_closure_analysis / simple-struct-min-capture.rs
1 // FIXME(arora-aman) add run-pass once 2229 is implemented
2
3 #![feature(capture_disjoint_fields)]
4 //~^ WARNING the feature `capture_disjoint_fields` is incomplete
5 #![feature(rustc_attrs)]
6
7 // Test to ensure that min analysis meets capture kind for all paths captured.
8
9 #[derive(Debug)]
10 struct Point {
11     x: i32,
12     y: i32,
13 }
14
15 fn main() {
16     let mut p = Point { x: 10, y: 20 };
17
18     //
19     // Requirements:
20     // p.x -> MutBoorrow
21     // p   -> ImmBorrow
22     //
23     // Requirements met when p is captured via MutBorrow
24     //
25     let mut c = #[rustc_capture_analysis]
26         //~^ ERROR: attributes on expressions are experimental
27     || {
28         p.x += 10;
29         println!("{:?}", p);
30     };
31
32     c();
33 }