| // A test case for #2548. | |
| struct foo { | |
| x: @mut int, | |
| drop { | |
| io::println("Goodbye, World!"); | |
| *self.x += 1; | |
| } | |
| } | |
| fn foo(x: @mut int) -> foo { | |
| foo { x: x } | |
| } | |
| fn main() { | |
| let x = @mut 0; | |
| { | |
| let mut res = foo(x); | |
| let mut v = ~[mut]; | |
| v <- ~[mut res] + v; //~ ERROR instantiating a type parameter with an incompatible type (needs `copy`, got `owned`, missing `copy`) | |
| assert (v.len() == 2); | |
| } | |
| assert *x == 1; | |
| } |