2011-11-18 05:39:20 -06:00
|
|
|
// error-pattern: copying a noncopyable value
|
2011-09-27 16:24:18 -05:00
|
|
|
|
2012-08-15 20:46:55 -05:00
|
|
|
struct r {
|
2012-09-06 21:40:15 -05:00
|
|
|
i: @mut int,
|
2012-11-14 00:22:37 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
impl r : Drop {
|
2012-11-28 17:42:16 -06:00
|
|
|
fn finalize(&self) {
|
2012-11-14 00:22:37 -06:00
|
|
|
*(self.i) = *(self.i) + 1;
|
|
|
|
}
|
2011-09-27 16:24:18 -05:00
|
|
|
}
|
|
|
|
|
2012-06-29 18:26:56 -05:00
|
|
|
fn f<T>(+i: ~[T], +j: ~[T]) {
|
2011-09-27 16:24:18 -05:00
|
|
|
let k = i + j;
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
2012-03-26 20:35:18 -05:00
|
|
|
let i1 = @mut 0;
|
|
|
|
let i2 = @mut 1;
|
2012-10-23 13:11:23 -05:00
|
|
|
let r1 = move ~[~r { i: i1 }];
|
|
|
|
let r2 = move ~[~r { i: i2 }];
|
2011-09-27 16:24:18 -05:00
|
|
|
f(r1, r2);
|
2011-12-22 19:53:53 -06:00
|
|
|
log(debug, (r2, *i1));
|
|
|
|
log(debug, (r1, *i2));
|
2012-11-14 00:22:37 -06:00
|
|
|
}
|