macro_rules! foo {
    ($foo:ident) => {
        mod y {
            pub struct $foo;
        }
    };
}
fn main() {
    foo!(Foo);
    mod module {
        foo!(Bar);
        fn func(_: y::Bar) {
            mod inner {
                struct Innerest<const C: usize> { field: [(); {C}] }
            }
        }
    }
}