| #![cfg_attr(feature = "used_linker", feature(used_with_arg))] |
| #![allow(clippy::needless_lifetimes, clippy::trivially_copy_pass_by_ref)] |
| |
| use linkme::distributed_slice; |
| |
| #[distributed_slice] |
| pub static SLICE1: [fn()]; |
| |
| #[distributed_slice(SLICE1)] |
| fn foo() {} |
| |
| #[distributed_slice] |
| pub static SLICE2: [for<'a, 'b> fn(&'a &'b ())]; |
| |
| #[distributed_slice(SLICE2)] |
| fn bar<'a, 'b>(_: &'a &'b ()) {} |
| |
| #[distributed_slice] |
| pub static SLICE3: [unsafe extern "C" fn() -> i32]; |
| |
| #[distributed_slice(SLICE3)] |
| unsafe extern "C" fn baz() -> i32 { |
| 42 |
| } |
| |
| #[test] |
| fn test_slices() { |
| assert!(!SLICE1.is_empty()); |
| assert!(!SLICE2.is_empty()); |
| assert!(!SLICE3.is_empty()); |
| } |