about summary refs log tree commit diff
path: root/tests/ui/fn/mutable-function-parameters.rs
blob: 5045a783f0492b8a0383154f0f9aa2cc8d46ed27 (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
//! Test that function and closure parameters marked as `mut` can be mutated
//! within the function body.

//@ run-pass

fn f(mut y: Box<isize>) {
    *y = 5;
    assert_eq!(*y, 5);
}

fn g() {
    let frob = |mut q: Box<isize>| {
        *q = 2;
        assert_eq!(*q, 2);
    };
    let w = Box::new(37);
    frob(w);
}

pub fn main() {
    let z = Box::new(17);
    f(z);
    g();
}