| // https://github.com/rust-lang/rust/issues/7563 |
| //@ 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); |
| } |