1 // aux-build: no-mangle-associated-fn.rs 2 // run-pass 3 4 extern crate no_mangle_associated_fn; 5 6 struct Foo; 7 8 impl Foo { 9 #[no_mangle] foo() -> u810 fn foo() -> u8 { 11 1 12 } 13 } 14 15 trait Bar { qux() -> u816 fn qux() -> u8; 17 } 18 19 impl Bar for Foo { 20 #[no_mangle] qux() -> u821 fn qux() -> u8 { 22 4 23 } 24 } 25 main()26fn main() { 27 extern "Rust" { 28 fn foo() -> u8; 29 fn bar() -> u8; 30 fn baz() -> u8; 31 fn qux() -> u8; 32 } 33 assert_eq!(unsafe { foo() }, 1); 34 assert_eq!(unsafe { bar() }, 2); 35 assert_eq!(unsafe { baz() }, 3); 36 assert_eq!(unsafe { qux() }, 4); 37 } 38