1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
// run-pass trait Foo { fn f(self: Box<Self>); } struct S { x: isize } impl Foo for S { fn f(self: Box<S>) { assert_eq!(self.x, 3); } } pub fn main() { let x = Box::new(S { x: 3 }); let y = x as Box<dyn Foo>; y.f(); }