// run-pass #![allow(dead_code)] trait T { fn print(&self); } #[derive(Debug)] struct S { s: isize, } impl T for S { fn print(&self) { println!("{:?}", self); } } fn print_t(t: &dyn T) { t.print(); } fn print_s(s: &S) { s.print(); } pub fn main() { let s: Box = Box::new(S { s: 5 }); print_s(&*s); let t: Box = s as Box; print_t(&*t); }