| //@ check-pass |
| //@ edition:2018 |
| //@ compile-flags: -Z span-debug |
| //@ aux-build:test-macros.rs |
| //@ aux-build:dollar-crate-external.rs |
| |
| #![no_std] // Don't load unnecessary hygiene information from std |
| extern crate std; |
| |
| #[macro_use] |
| extern crate test_macros; |
| extern crate dollar_crate_external; |
| |
| type S = u8; |
| |
| mod local { |
| macro_rules! local { |
| () => { |
| print_bang! { |
| struct M($crate::S); |
| } |
| |
| #[print_attr] |
| struct A($crate::S); |
| |
| #[derive(Print)] |
| struct D($crate::S); |
| }; |
| } |
| |
| local!(); |
| } |
| |
| mod external { |
| use crate::dollar_crate_external; |
| |
| dollar_crate_external::external!(); |
| } |
| |
| fn main() {} |