]> git.lizzy.rs Git - rust.git/blob - src/test/ui/pure-sum.rs
Merge commit '3e7c6dec244539970b593824334876f8b6ed0b18' into clippyup
[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 #![feature(box_syntax)]
9
10 fn sums_to(v: Vec<isize> , sum: isize) -> bool {
11     let mut i = 0;
12     let mut sum0 = 0;
13     while i < v.len() {
14         sum0 += v[i];
15         i += 1;
16     }
17     return sum0 == sum;
18 }
19
20 fn sums_to_using_uniq(v: Vec<isize> , sum: isize) -> bool {
21     let mut i = 0;
22     let mut sum0: Box<_> = box 0;
23     while i < v.len() {
24         *sum0 += v[i];
25         i += 1;
26     }
27     return *sum0 == sum;
28 }
29
30 fn sums_to_using_rec(v: Vec<isize> , sum: isize) -> bool {
31     let mut i = 0;
32     let mut sum0 = F {f: 0};
33     while i < v.len() {
34         sum0.f += v[i];
35         i += 1;
36     }
37     return sum0.f == sum;
38 }
39
40 struct F<T> { f: T }
41
42 fn sums_to_using_uniq_rec(v: Vec<isize> , sum: isize) -> bool {
43     let mut i = 0;
44     let mut sum0 = F::<Box<_>> {f: box 0};
45     while i < v.len() {
46         *sum0.f += v[i];
47         i += 1;
48     }
49     return *sum0.f == sum;
50 }
51
52 pub fn main() {
53 }