//@ check-pass #![feature(decl_macro)] #![feature(fn_delegation)] #![allow(incomplete_features)] macro_rules! reuse { {} => {} } mod reuse { pub fn to_unsafe(x: i32) -> i32 { x + 1 } pub fn to_pub() {} pub fn to_pub2() {} mod inner { #[allow(non_camel_case_types)] struct reuse { a: i32, b: i32, c: i32, } impl reuse { reuse!(); } fn baz() { let (a, b, c) = (0, 0, 0); reuse {a, b, c}; } } pub macro my_macro() {} } reuse!(); reuse::my_macro!(); #[inline] pub reuse reuse::to_pub; pub reuse crate::reuse::to_pub2; fn main() {}