]> git.lizzy.rs Git - rust.git/blob - tests/ui/moves/move-3-unique.rs
Rollup merge of #106797 - FawazTirmizi:dev/issues/104284, r=bjorn3
[rust.git] / tests / ui / moves / move-3-unique.rs
1 // run-pass
2 #![allow(unused_mut)]
3 #![allow(dead_code)]
4
5 #[derive(Clone)]
6 struct Triple {
7     x: isize,
8     y: isize,
9     z: isize,
10 }
11
12 fn test(x: bool, foo: Box<Triple>) -> isize {
13     let bar = foo;
14     let mut y: Box<Triple>;
15     if x { y = bar; } else { y = Box::new(Triple {x: 4, y: 5, z: 6}); }
16     return y.y;
17 }
18
19 pub fn main() {
20     let x: Box<_> = Box::new(Triple{x: 1, y: 2, z: 3});
21     for _ in 0_usize..10000_usize {
22         assert_eq!(test(true, x.clone()), 2);
23     }
24     assert_eq!(test(false, x), 5);
25 }