summary refs log tree commit diff
path: root/src/test/compile-fail/fn-variance-1.rs
blob: cb2dbde3d48f8afbab0f22b08a58a4bef66c320e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
fn takes_mut(&&x: @mut int) { }
fn takes_const(&&x: @const int) { }
fn takes_imm(&&x: @int) { }

fn apply<T>(t: T, f: fn(T)) {
    f(t)
}

fn main() {
    apply(@3, takes_mut); //! ERROR (values differ in mutability)
    apply(@3, takes_const);
    apply(@3, takes_imm);

    apply(@mut 3, takes_mut);
    apply(@mut 3, takes_const);
    apply(@mut 3, takes_imm); //! ERROR (values differ in mutability)
}