blob: bf3f629df49709c0e21eb35c44bcc19f417c8cff [file] [log] [blame] [edit]
//@ 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()
}