| //@ aux-build: no-mangle-associated-fn.rs | |
| //@ run-pass | |
| extern crate no_mangle_associated_fn; | |
| struct Foo; | |
| impl Foo { | |
| #[no_mangle] | |
| fn foo() -> u8 { | |
| 1 | |
| } | |
| } | |
| trait Bar { //~ WARN trait `Bar` is never used | |
| fn qux() -> u8; | |
| } | |
| impl Bar for Foo { | |
| #[no_mangle] | |
| fn qux() -> u8 { | |
| 4 | |
| } | |
| } | |
| fn main() { | |
| extern "Rust" { | |
| fn foo() -> u8; | |
| fn bar() -> u8; | |
| fn baz() -> u8; | |
| fn qux() -> u8; | |
| } | |
| assert_eq!(unsafe { foo() }, 1); | |
| assert_eq!(unsafe { bar() }, 2); | |
| assert_eq!(unsafe { baz() }, 3); | |
| assert_eq!(unsafe { qux() }, 4); | |
| } |