//@ 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); | |
} |