2012-05-23 12:15:06 -05:00
|
|
|
// error-pattern: copying a noncopyable value
|
|
|
|
|
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 {
|
|
|
|
fn finalize() {
|
|
|
|
*(self.i) = *(self.i) + 1;
|
|
|
|
}
|
2012-05-23 12:15:06 -05:00
|
|
|
}
|
|
|
|
|
2012-09-05 17:58:43 -05:00
|
|
|
fn r(i: @mut int) -> r {
|
|
|
|
r {
|
|
|
|
i: i
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-05-23 12:15:06 -05:00
|
|
|
fn main() {
|
|
|
|
let i = @mut 0;
|
|
|
|
{
|
|
|
|
// Can't do this copy
|
|
|
|
let x = ~~~{y: r(i)};
|
|
|
|
let z = x;
|
|
|
|
log(debug, x);
|
|
|
|
}
|
|
|
|
log(error, *i);
|
2012-11-14 00:22:37 -06:00
|
|
|
}
|