// -*- rust -*-

type point = {x: int, y: int};

pure fn test(_p: point) -> bool { true }
fn tested(p: point) : test(p) -> point { p }

fn main() {
    let origin: point;
    origin = {x: 0, y: 0};
    let right: point = {x: 10 with tested(origin)};
        //~^ ERROR precondition
    copy right;
}
