//@ 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() { | |
} |