]> git.lizzy.rs Git - rust.git/blob - tests/ui/unsafe/issue-45107-unnecessary-unsafe-in-closure.rs
Rollup merge of #104965 - zacklukem:p-option-as_ref-docs, r=scottmcm
[rust.git] / tests / ui / unsafe / issue-45107-unnecessary-unsafe-in-closure.rs
1 // revisions: mir thir
2 // [thir]compile-flags: -Zthir-unsafeck
3
4 #[deny(unused_unsafe)]
5 fn main() {
6     let mut v = Vec::<i32>::with_capacity(24);
7
8     unsafe {
9         let f = |v: &mut Vec<_>| {
10             unsafe { //~ ERROR unnecessary `unsafe`
11                 v.set_len(24);
12                 |w: &mut Vec<u32>| { unsafe { //~ ERROR unnecessary `unsafe`
13                     w.set_len(32);
14                 } };
15             }
16             |x: &mut Vec<u32>| { unsafe { //~ ERROR unnecessary `unsafe`
17                 x.set_len(40);
18             } };
19         };
20
21         v.set_len(0);
22         f(&mut v);
23     }
24
25     |y: &mut Vec<u32>| { unsafe {
26         y.set_len(48);
27     } };
28 }