// error-pattern: copying a noncopyable value struct r { i: @mut int, drop { *(self.i) = *(self.i) + 1; } } fn f(+i: ~[T], +j: ~[T]) { let k = i + j; } fn main() { let i1 = @mut 0; let i2 = @mut 1; let r1 <- ~[~r { i: i1 }]; let r2 <- ~[~r { i: i2 }]; f(r1, r2); log(debug, (r2, *i1)); log(debug, (r1, *i2)); }