| use super::DormantMutRef; | |
| #[test] | |
| fn test_borrow() { | |
| let mut data = 1; | |
| let mut stack = vec![]; | |
| let mut rr = &mut data; | |
| for factor in [2, 3, 7].iter() { | |
| let (r, dormant_r) = DormantMutRef::new(rr); | |
| rr = r; | |
| assert_eq!(*rr, 1); | |
| stack.push((factor, dormant_r)); | |
| } | |
| while let Some((factor, dormant_r)) = stack.pop() { | |
| let r = unsafe { dormant_r.awaken() }; | |
| *r *= factor; | |
| } | |
| assert_eq!(data, 42); | |
| } |