| //@ run-pass | |
| #![allow(dead_code)] | |
| trait IDummy { | |
| fn do_nothing(&self); | |
| } | |
| #[derive(Debug)] | |
| struct A { a: isize } | |
| #[derive(Debug)] | |
| struct B<'a> { b: isize, pa: &'a A } | |
| impl IDummy for A { | |
| fn do_nothing(&self) { | |
| println!("A::do_nothing() is called"); | |
| } | |
| } | |
| impl<'a> B<'a> { | |
| fn get_pa(&self) -> &'a dyn IDummy { self.pa as &'a dyn IDummy } | |
| } | |
| pub fn main() { | |
| let sa = A { a: 100 }; | |
| let sb = B { b: 200, pa: &sa }; | |
| println!("sa is {:?}", sa); | |
| println!("sb is {:?}", sb); | |
| } |