]> git.proxmox.com Git - rustc.git/blame - src/test/ui/traits/trait-coercion-generic.rs
New upstream version 1.51.0+dfsg1
[rustc.git] / src / test / ui / traits / trait-coercion-generic.rs
CommitLineData
b7449926 1// run-pass
0bf4aa26 2#![allow(dead_code)]
1a4d82fc
JJ
3trait Trait<T> {
4 fn f(&self, x: T);
970d7e83
LB
5}
6
c34b1796 7#[derive(Copy, Clone)]
1a4d82fc 8struct Struct {
c34b1796
AL
9 x: isize,
10 y: isize,
970d7e83
LB
11}
12
1a4d82fc
JJ
13impl Trait<&'static str> for Struct {
14 fn f(&self, x: &'static str) {
15 println!("Hi, {}!", x);
970d7e83
LB
16 }
17}
18
223e47cc 19pub 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}