//@ run-pass // Test invoked `&self` methods on owned objects where the values // closed over contain managed values. This implies that the boxes // will have headers that must be skipped over. trait FooTrait { fn foo(self: Box) -> usize; } struct BarStruct { x: usize } impl FooTrait for BarStruct { fn foo(self: Box) -> usize { self.x } } pub fn main() { let foo = Box::new(BarStruct{ x: 22 }) as Box; assert_eq!(22, foo.foo()); }