]> git.proxmox.com Git - rustc.git/blob - src/test/ui/issues/issue-3979.rs
New upstream version 1.60.0+dfsg1
[rustc.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 }