1 #![allow(unused_variables)]
5 let bytes: Vec<u8> = b"Hello"[..].to_vec();
6 let some = Some(bytes);
8 let Some(ref a) = Some(()) else { return };
10 // | ref | type annotation | & |
11 // | --- | --------------- | - |
16 let Some(ref a): Option<&[u8]> = some else { return }; //~ ERROR mismatched types
20 let Some(ref a): Option<&[u8]> = &some else { return }; //~ ERROR mismatched types
24 let Some(a): Option<&[u8]> = some else { return }; //~ ERROR mismatched types
27 let Some(a): Option<&[u8]> = &some else { return }; //~ ERROR mismatched types
32 // This `ref mut` case had an ICE, see issue #89960
33 let Some(ref mut a) = Some(()) else { return };
35 let bytes: Vec<u8> = b"Hello"[..].to_vec();
36 let mut some = Some(bytes);
38 // | ref mut | type annotation | &mut |
39 // | ------- | --------------- | ---- |
44 let Some(ref mut a): Option<&mut [u8]> = some else { return }; //~ ERROR mismatched types
47 // | x | x | x | (nope)
48 let Some(ref mut a): Option<&mut [u8]> = &mut some else { return }; //~ ERROR mismatched types
52 let Some(a): Option<&mut [u8]> = some else { return }; //~ ERROR mismatched types
55 let Some(a): Option<&mut [u8]> = &mut some else { return }; //~ ERROR mismatched types