]> git.lizzy.rs Git - rust.git/blob - tests/ui/closures/2229_closure_analysis/issue-87378.rs
Rollup merge of #107442 - lukas-code:slice-panics, r=cuviper
[rust.git] / tests / ui / closures / 2229_closure_analysis / issue-87378.rs
1 #![feature(rustc_attrs)]
2
3 // edition:2021
4
5 // Test that any precise capture on a union is truncated because it's unsafe to do so.
6
7 union Union {
8     value: u64,
9 }
10
11 fn main() {
12     let u = Union { value: 42 };
13
14     let c = #[rustc_capture_analysis]
15     //~^ ERROR: attributes on expressions are experimental
16     //~| NOTE: see issue #15701 <https://github.com/rust-lang/rust/issues/15701>
17     || {
18     //~^ ERROR: First Pass analysis includes:
19     //~| ERROR: Min Capture analysis includes:
20        unsafe { u.value }
21         //~^ NOTE: Capturing u[(0, 0)] -> ImmBorrow
22         //~| NOTE: Min Capture u[] -> ImmBorrow
23     };
24
25     c();
26 }