about summary refs log tree commit diff
path: root/src/tools/miri/tests/pass/loops.rs
blob: 222287cbe09adcf4ad2936ca28ff72baebdbf82f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
fn factorial_loop() -> i64 {
    let mut product = 1;
    let mut i = 1;

    while i <= 10 {
        product *= i;
        i += 1;
    }

    product
}

fn index_for_loop() -> usize {
    let mut sum = 0;
    let a = [0, 10, 20, 30];
    for i in 0..a.len() {
        sum += a[i];
    }
    sum
}

fn for_loop() -> usize {
    let mut sum = 0;
    let a = [0, 10, 20, 30];
    for &n in &a {
        sum += n;
    }
    sum
}

fn main() {
    assert_eq!(factorial_loop(), 3628800);
    assert_eq!(index_for_loop(), 60);
    assert_eq!(for_loop(), 60);
}