]> git.lizzy.rs Git - rust.git/blob - src/test/ui/nll/mutating_references.rs
Rollup merge of #105216 - GuillaumeGomez:rm-unused-gui-test, r=notriddle
[rust.git] / src / test / ui / nll / mutating_references.rs
1 // run-pass
2
3 struct List<T> {
4     value: T,
5     next: Option<Box<List<T>>>,
6 }
7
8 fn to_refs<T>(mut list: &mut List<T>) -> Vec<&mut T> {
9     let mut result = vec![];
10     loop {
11         result.push(&mut list.value);
12         if let Some(n) = list.next.as_mut() {
13             list = n;
14         } else {
15             return result;
16         }
17     }
18 }
19
20 fn main() {
21     let mut list = List { value: 1, next: None };
22     let vec = to_refs(&mut list);
23     assert_eq!(vec![&mut 1], vec);
24 }