]>
Commit | Line | Data |
---|---|---|
b7449926 | 1 | // run-pass |
0bf4aa26 XL |
2 | #![allow(dead_code)] |
3 | #![allow(unused_mut)] | |
4 | #![allow(unused_variables)] | |
d9579d0f | 5 | #![feature(box_syntax)] |
970d7e83 | 6 | |
c34b1796 | 7 | use std::io::{self, Write}; |
1a4d82fc JJ |
8 | |
9 | trait Trait { | |
10 | fn f(&self); | |
970d7e83 LB |
11 | } |
12 | ||
c34b1796 | 13 | #[derive(Copy, Clone)] |
1a4d82fc | 14 | struct Struct { |
c34b1796 AL |
15 | x: isize, |
16 | y: isize, | |
970d7e83 LB |
17 | } |
18 | ||
1a4d82fc JJ |
19 | impl Trait for Struct { |
20 | fn f(&self) { | |
21 | println!("Hi!"); | |
970d7e83 LB |
22 | } |
23 | } | |
24 | ||
dc9dc135 | 25 | fn foo(mut a: Box<dyn Write>) {} |
c34b1796 | 26 | |
223e47cc | 27 | pub fn main() { |
1a4d82fc | 28 | let a = Struct { x: 1, y: 2 }; |
dc9dc135 | 29 | let b: Box<dyn Trait> = Box::new(a); |
1a4d82fc | 30 | b.f(); |
dc9dc135 | 31 | let c: &dyn Trait = &a; |
1a4d82fc JJ |
32 | c.f(); |
33 | ||
c34b1796 AL |
34 | let out = io::stdout(); |
35 | foo(Box::new(out)); | |
223e47cc | 36 | } |