// error-pattern:borrowed

trait Foo {
    fn foo(&self, @mut int);
}

impl Foo for int {
    fn foo(&self, x: @mut int) {
        *x += *self;
    }
}

fn it_takes_two(_f: &Foo, _g: &mut Foo) {
}

fn main() {
    let x = @mut 3_i;
    let y = x as @mut Foo;
    let z = y;

    it_takes_two(y, z);
}
