| //@ run-pass | |
| trait Foo { | |
| extern "C" fn borrow(&self); | |
| extern "C" fn take(self: Box<Self>); | |
| } | |
| struct Bar; | |
| impl Foo for Bar { | |
| #[allow(improper_ctypes_definitions)] | |
| extern "C" fn borrow(&self) {} | |
| #[allow(improper_ctypes_definitions)] | |
| extern "C" fn take(self: Box<Self>) {} | |
| } | |
| fn main() { | |
| let foo: Box<dyn Foo> = Box::new(Bar); | |
| foo.borrow(); | |
| foo.take() | |
| } |