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