| //! Regression test for <https://github.com/rust-lang/rust/issues/3220>. | |
| //! Initially a pretty-printer bug, which omitted parentheses around `move` | |
| //! keyword in lhs (`(move z).f()`), now this behaviour is untestable as | |
| //! plain `move` outside a closure doesn't exist. | |
| //! | |
| //! Now appears to test that drop works correctly when value is moved by method. | |
| //@ run-pass | |
| #![allow(dead_code)] | |
| #![allow(non_camel_case_types)] | |
| struct thing { x: isize, } | |
| impl Drop for thing { | |
| fn drop(&mut self) {} | |
| } | |
| fn thing() -> thing { | |
| thing { | |
| x: 0 | |
| } | |
| } | |
| impl thing { | |
| pub fn f(self) {} | |
| } | |
| pub fn main() { | |
| let z = thing(); | |
| (z).f(); | |
| } |