| //@ run-pass | |
| struct X { | |
| a: isize | |
| } | |
| trait Changer { | |
| fn change(self: Box<Self>) -> Box<Self>; | |
| } | |
| impl Changer for X { | |
| fn change(mut self: Box<X>) -> Box<X> { | |
| self.a = 55; | |
| self | |
| } | |
| } | |
| pub fn main() { | |
| let x: Box<_> = Box::new(X { a: 32 }); | |
| let new_x = x.change(); | |
| assert_eq!(new_x.a, 55); | |
| } |