2012-06-01 19:48:07 -05:00
|
|
|
// error-pattern: copying a noncopyable value
|
|
|
|
|
|
|
|
// Test that a class with a non-copyable field can't be
|
|
|
|
// copied
|
2012-08-15 20:46:55 -05:00
|
|
|
struct bar {
|
2012-06-06 16:58:41 -05:00
|
|
|
let x: int;
|
2012-06-01 19:48:07 -05:00
|
|
|
drop {}
|
|
|
|
}
|
|
|
|
|
2012-09-05 17:58:43 -05:00
|
|
|
fn bar(x:int) -> bar {
|
|
|
|
bar {
|
|
|
|
x: x
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-08-15 20:46:55 -05:00
|
|
|
struct foo {
|
2012-06-01 19:48:07 -05:00
|
|
|
let i: int;
|
|
|
|
let j: bar;
|
2012-09-05 17:58:43 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
fn foo(i:int) -> foo {
|
|
|
|
foo {
|
|
|
|
i: i,
|
|
|
|
j: bar(5)
|
|
|
|
}
|
2012-06-01 19:48:07 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() { let x <- foo(10); let y = x; log(error, x); }
|