2 // Test that a `&mut` inside of an `&` is freezable.
5 struct MutSlice<'a, T:'a> {
9 fn get<'a, T>(ms: &'a MutSlice<'a, T>, index: usize) -> &'a T {
14 let mut data = [1, 2, 3];
16 let slice = MutSlice { data: &mut data };
18 let index0 = get(&slice, 0);
19 let index1 = get(&slice, 1);
20 let index2 = get(&slice, 2);
21 assert_eq!(*index0, 5);
22 assert_eq!(*index1, 2);
23 assert_eq!(*index2, 3);
25 assert_eq!(data[0], 5);
26 assert_eq!(data[1], 2);
27 assert_eq!(data[2], 3);