f6491bb426
This involved adding 'copy' to more generics than I hoped, but an experiment with making it implicit showed that that way lies madness -- unless enforced, you will not remember to mark functions that don't copy as not requiring copyable kind. Issue #1177
19 lines
311 B
Rust
19 lines
311 B
Rust
// error-pattern: copying a noncopyable value
|
|
|
|
resource r(i: @mutable int) {
|
|
*i = *i + 1;
|
|
}
|
|
|
|
fn f<T>(+i: [T], +j: [T]) {
|
|
let k = i + j;
|
|
}
|
|
|
|
fn main() {
|
|
let i1 = @mutable 0;
|
|
let i2 = @mutable 1;
|
|
let r1 <- [~r(i1)];
|
|
let r2 <- [~r(i2)];
|
|
f(r1, r2);
|
|
log (r2, *i1);
|
|
log (r1, *i2);
|
|
} |