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