diff options
Diffstat (limited to 'src/test/ui/closures/2229_closure_analysis/run_pass/nested-closure.rs')
-rw-r--r-- | src/test/ui/closures/2229_closure_analysis/run_pass/nested-closure.rs | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/src/test/ui/closures/2229_closure_analysis/run_pass/nested-closure.rs b/src/test/ui/closures/2229_closure_analysis/run_pass/nested-closure.rs deleted file mode 100644 index a80b40bb4..000000000 --- a/src/test/ui/closures/2229_closure_analysis/run_pass/nested-closure.rs +++ /dev/null @@ -1,36 +0,0 @@ -// edition:2021 -// run-pass - -// Test whether if we can do precise capture when using nested clsoure. - -struct Point { - x: i32, - y: i32, -} - -fn main() { - let mut p = Point { x: 5, y: 20 }; - - // c1 should capture `p.x` via immutable borrow and - // `p.y` via mutable borrow. - let mut c1 = || { - println!("{}", p.x); - - let incr = 10; - - let mut c2 = || p.y += incr; - c2(); - - println!("{}", p.y); - }; - - c1(); - - // This should not throw an error because `p.x` is borrowed via Immutable borrow, - // and multiple immutable borrow of the same place are allowed. - let px = &p.x; - - println!("{}", px); - - c1(); -} |