summaryrefslogtreecommitdiffstats
path: root/src/test/ui/closures/2229_closure_analysis/multilevel-path-1.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
commit64d98f8ee037282c35007b64c2649055c56af1db (patch)
tree5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /src/test/ui/closures/2229_closure_analysis/multilevel-path-1.rs
parentAdding debian version 1.67.1+dfsg1-1. (diff)
downloadrustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz
rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/closures/2229_closure_analysis/multilevel-path-1.rs')
-rw-r--r--src/test/ui/closures/2229_closure_analysis/multilevel-path-1.rs39
1 files changed, 0 insertions, 39 deletions
diff --git a/src/test/ui/closures/2229_closure_analysis/multilevel-path-1.rs b/src/test/ui/closures/2229_closure_analysis/multilevel-path-1.rs
deleted file mode 100644
index a8a2acfa7..000000000
--- a/src/test/ui/closures/2229_closure_analysis/multilevel-path-1.rs
+++ /dev/null
@@ -1,39 +0,0 @@
-// edition:2021
-
-#![feature(rustc_attrs)]
-#![allow(unused)]
-
-struct Point {
- x: i32,
- y: i32,
-}
-struct Wrapper {
- p: Point,
-}
-
-fn main() {
- let mut w = Wrapper { p: Point { x: 10, y: 10 } };
-
- // Only paths that appears within the closure that directly start off
- // a variable defined outside the closure are captured.
- //
- // Therefore `w.p` is captured
- // Note that `wp.x` doesn't start off a variable defined outside the closure.
- let c = #[rustc_capture_analysis]
- //~^ ERROR: attributes on expressions are experimental
- //~| NOTE: see issue #15701 <https://github.com/rust-lang/rust/issues/15701>
- || {
- //~^ ERROR: First Pass analysis includes:
- //~| ERROR: Min Capture analysis includes:
- let wp = &w.p;
- //~^ NOTE: Capturing w[(0, 0)] -> ImmBorrow
- //~| NOTE: Min Capture w[(0, 0)] -> ImmBorrow
- println!("{}", wp.x);
- };
-
- // Since `c` captures `w.p` by an ImmBorrow, `w.p.y` can't be mutated.
- let py = &mut w.p.y;
- c();
-
- *py = 20
-}