| //@ check-pass |
| //@ proc-macro: expect-modules.rs |
| //@ reference: macro.invocation.attr.mod |
| |
| // Verifies how module items are represented in proc macro input. |
| |
| #[macro_use] |
| extern crate expect_modules; |
| |
| #[expect_modules::expect_mod_item] |
| mod module; |
| |
| fn check() { |
| module::hello(); |
| } |
| |
| #[expect_modules::expect_mods_attr] |
| mod outer { |
| #[path = "../module.rs"] |
| mod attr_outlined; |
| mod attr_inline {} |
| |
| fn check() { |
| attr_outlined::hello(); |
| } |
| } |
| |
| #[expect_modules::expect_mods_attr] |
| fn foo() { |
| #[path = "module.rs"] |
| mod attr_outlined; |
| mod attr_inline {} |
| attr_outlined::hello(); |
| } |
| |
| #[derive(expect_modules::ExpectModsDerive)] |
| struct Foo( |
| [u8; { |
| #[path = "module.rs"] |
| mod derive_outlined; |
| mod derive_inline {} |
| derive_outlined::hello(); |
| 0 |
| }], |
| ); |
| |
| fn main() {} |