]>
Commit | Line | Data |
---|---|---|
b7449926 | 1 | // run-pass |
c295e0f8 | 2 | #![allow(dead_code)] |
1a4d82fc | 3 | |
223e47cc LB |
4 | trait T { |
5 | fn print(&self); | |
6 | } | |
7 | ||
85aaf69f | 8 | #[derive(Debug)] |
223e47cc | 9 | struct S { |
c34b1796 | 10 | s: isize, |
223e47cc LB |
11 | } |
12 | ||
13 | impl T for S { | |
14 | fn print(&self) { | |
1a4d82fc | 15 | println!("{:?}", self); |
223e47cc LB |
16 | } |
17 | } | |
18 | ||
dc9dc135 | 19 | fn print_t(t: &dyn T) { |
223e47cc LB |
20 | t.print(); |
21 | } | |
22 | ||
23 | fn print_s(s: &S) { | |
24 | s.print(); | |
25 | } | |
26 | ||
27 | pub fn main() { | |
f2b60f7d | 28 | let s: Box<S> = Box::new(S { s: 5 }); |
1a4d82fc | 29 | print_s(&*s); |
dc9dc135 | 30 | let t: Box<dyn T> = s as Box<dyn T>; |
1a4d82fc | 31 | print_t(&*t); |
223e47cc | 32 | } |