// check-pass // edition:2018 // issue: https://github.com/rust-lang/rust/issues/97534 macro_rules! m { () => { macro_rules! foo { () => {} } use foo as bar; } } m!{} use bar as baz; baz!{} macro_rules! foo2 { () => {}; } macro_rules! m2 { () => { use foo2 as bar2; }; } m2! {} use bar2 as baz2; baz2! {} macro_rules! n1 { () => { macro_rules! n2 { () => { macro_rules! n3 { () => { macro_rules! n4 { () => {} } use n4 as c4; } } use n3 as c3; } } use n2 as c2; } } use n1 as c1; c1!{} use c2 as a2; a2!{} use c3 as a3; a3!{} use c4 as a4; a4!{} // https://github.com/rust-lang/rust/pull/108729#issuecomment-1474750675 // reversed use d5 as d6; use d4 as d5; use d3 as d4; use d2 as d3; use d1 as d2; use foo2 as d1; d6! {} // mess use f3 as f4; f5! {} use f1 as f2; use f4 as f5; use f2 as f3; use foo2 as f1; fn main() { }