]> git.lizzy.rs Git - rust.git/blob - src/test/ui/self/self-in-mut-slot-default-method.rs
Update ui tests
[rust.git] / src / test / ui / self / self-in-mut-slot-default-method.rs
1 // run-pass
2 #![feature(box_syntax)]
3
4 struct X {
5     a: isize
6 }
7
8 trait Changer : Sized {
9     fn change(mut self) -> Self {
10         self.set_to(55);
11         self
12     }
13
14     fn change_again(mut self: Box<Self>) -> Box<Self> {
15         self.set_to(45);
16         self
17     }
18
19     fn set_to(&mut self, a: isize);
20 }
21
22 impl Changer for X {
23     fn set_to(&mut self, a: isize) {
24         self.a = a;
25     }
26 }
27
28 pub fn main() {
29     let x = X { a: 32 };
30     let new_x = x.change();
31     assert_eq!(new_x.a, 55);
32
33     let x: Box<_> = box new_x;
34     let new_x = x.change_again();
35     assert_eq!(new_x.a, 45);
36 }