]> git.lizzy.rs Git - rust.git/blob - src/test/ui/pure-sum.rs
Rollup merge of #89945 - JohnTitor:we-now-specialize-clone-from-slice, r=the8472
[rust.git] / src / test / ui / pure-sum.rs
1 // run-pass
2
3 #![allow(dead_code)]
4 // Check that functions can modify local state.
5
6 // pretty-expanded FIXME #23616
7
8 fn sums_to(v: Vec<isize> , sum: isize) -> bool {
9     let mut i = 0;
10     let mut sum0 = 0;
11     while i < v.len() {
12         sum0 += v[i];
13         i += 1;
14     }
15     return sum0 == sum;
16 }
17
18 fn sums_to_using_uniq(v: Vec<isize> , sum: isize) -> bool {
19     let mut i = 0;
20     let mut sum0: Box<_> = 0.into();
21     while i < v.len() {
22         *sum0 += v[i];
23         i += 1;
24     }
25     return *sum0 == sum;
26 }
27
28 fn sums_to_using_rec(v: Vec<isize> , sum: isize) -> bool {
29     let mut i = 0;
30     let mut sum0 = F {f: 0};
31     while i < v.len() {
32         sum0.f += v[i];
33         i += 1;
34     }
35     return sum0.f == sum;
36 }
37
38 struct F<T> { f: T }
39
40 fn sums_to_using_uniq_rec(v: Vec<isize> , sum: isize) -> bool {
41     let mut i = 0;
42     let mut sum0 = F::<Box<_>> {f: 0.into() };
43     while i < v.len() {
44         *sum0.f += v[i];
45         i += 1;
46     }
47     return *sum0.f == sum;
48 }
49
50 pub fn main() {
51 }