summary refs log tree commit diff
path: root/src/test/run-pass/issue-7563.rs
blob: f36dcb5ef1bbebe20eff69ac63fc670168c301ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
trait IDummy {
    fn do_nothing(&self);
}

struct A { a: int }
struct B<'self> { b: int, pa: &'self A }

    impl IDummy for A {
        fn do_nothing(&self) {
            println("A::do_nothing() is called");
        }
    }

impl<'self> B<'self> {
    fn get_pa(&self) -> &'self IDummy { self.pa as &'self IDummy }
}

pub fn main() {
    let sa = A { a: 100 };
    let sb = B { b: 200, pa: &sa };

    debug!("sa is %?", sa);
    debug!("sb is %?", sb);
    debug!("sb.pa is %?", sb.get_pa());
}