]>
Commit | Line | Data |
---|---|---|
b7449926 | 1 | // run-pass |
0bf4aa26 | 2 | #![allow(dead_code)] |
1a4d82fc JJ |
3 | trait Trait<T> { |
4 | fn f(&self, x: T); | |
970d7e83 LB |
5 | } |
6 | ||
c34b1796 | 7 | #[derive(Copy, Clone)] |
1a4d82fc | 8 | struct Struct { |
c34b1796 AL |
9 | x: isize, |
10 | y: isize, | |
970d7e83 LB |
11 | } |
12 | ||
1a4d82fc JJ |
13 | impl Trait<&'static str> for Struct { |
14 | fn f(&self, x: &'static str) { | |
15 | println!("Hi, {}!", x); | |
970d7e83 LB |
16 | } |
17 | } | |
18 | ||
223e47cc | 19 | pub fn main() { |
1a4d82fc | 20 | let a = Struct { x: 1, y: 2 }; |
dc9dc135 | 21 | let b: Box<dyn Trait<&'static str>> = Box::new(a); |
1a4d82fc | 22 | b.f("Mary"); |
dc9dc135 | 23 | let c: &dyn Trait<&'static str> = &a; |
1a4d82fc | 24 | c.f("Joe"); |
223e47cc | 25 | } |