]>
git.proxmox.com Git - rustc.git/blob - src/test/ui/lifetimes/bare-trait-object.rs
1 // Verify that lifetime resolution correctly accounts for `Fn` bare trait objects.
3 #![allow(bare_trait_objects)]
5 // This should work as: fn next_u32(fill_buf: &mut dyn FnMut(&mut [u8]))
6 fn next_u32(fill_buf
: &mut FnMut(&mut [u8])) {
7 let mut buf
: [u8; 4] = [0; 4];
11 fn explicit(fill_buf
: &mut dyn FnMut(&mut [u8])) {
12 let mut buf
: [u8; 4] = [0; 4];
17 let _
: fn(&mut FnMut(&mut [u8])) = next_u32
;
18 let _
: &dyn Fn(&mut FnMut(&mut [u8])) = &next_u32
;
19 let _
: fn(&mut FnMut(&mut [u8])) = explicit
;
20 let _
: &dyn Fn(&mut FnMut(&mut [u8])) = &explicit
;
21 let _
: fn(&mut dyn FnMut(&mut [u8])) = next_u32
;
22 let _
: &dyn Fn(&mut dyn FnMut(&mut [u8])) = &next_u32
;
23 let _
: fn(&mut dyn FnMut(&mut [u8])) = explicit
;
24 let _
: &dyn Fn(&mut dyn FnMut(&mut [u8])) = &explicit
;