]> git.lizzy.rs Git - rust.git/blob - src/test/ui/issues/issue-3979.rs
Rollup merge of #91804 - woppopo:const_clone, r=oli-obk
[rust.git] / src / test / ui / issues / issue-3979.rs
1 // run-pass
2 #![allow(dead_code)]
3 #![allow(non_snake_case)]
4
5 trait Positioned {
6   fn SetX(&mut self, _: isize);
7   fn X(&self) -> isize;
8 }
9
10 trait Movable: Positioned {
11   fn translate(&mut self, dx: isize) {
12     let x = self.X();
13     self.SetX(x + dx);
14   }
15 }
16
17 struct Point { x: isize, y: isize }
18
19 impl Positioned for Point {
20     fn SetX(&mut self, x: isize) {
21         self.x = x;
22     }
23     fn X(&self) -> isize {
24         self.x
25     }
26 }
27
28 impl Movable for Point {}
29
30 pub fn main() {
31     let mut p = Point{ x: 1, y: 2};
32     p.translate(3);
33     assert_eq!(p.X(), 4);
34 }