// edition:2018
// compile-flags: --crate-version 1.0.0

// @is "$.crate_version" \"1.0.0\"
// @has "$.index[*][?(@.name=='nested')].inner.module"
// @is "$.index[*][?(@.name=='nested')].inner.module.is_crate" true

// @set l1_id = "$.index[*][?(@.name=='l1')].id"
// @ismany "$.index[*][?(@.name=='nested')].inner.module.items[*]" $l1_id

// @has "$.index[*][?(@.name=='l1')].inner.module"
// @is "$.index[*][?(@.name=='l1')].inner.module.is_crate" false
pub mod l1 {
    // @has "$.index[*][?(@.name=='l3')].inner.module"
    // @is "$.index[*][?(@.name=='l3')].inner.module.is_crate" false
    // @set l3_id = "$.index[*][?(@.name=='l3')].id"
    pub mod l3 {

        // @has "$.index[*][?(@.name=='L4')].inner.struct"
        // @is "$.index[*][?(@.name=='L4')].inner.struct.kind" '"unit"'
        // @set l4_id = "$.index[*][?(@.name=='L4')].id"
        // @ismany "$.index[*][?(@.name=='l3')].inner.module.items[*]" $l4_id
        pub struct L4;
    }
    // @is "$.index[*][?(@.inner.import)].inner.import.glob" false
    // @is "$.index[*][?(@.inner.import)].inner.import.source" '"l3::L4"'
    // @is "$.index[*][?(@.inner.import)].inner.import.glob" false
    // @is "$.index[*][?(@.inner.import)].inner.import.id" $l4_id
    // @set l4_use_id = "$.index[*][?(@.inner.import)].id"
    pub use l3::L4;
}
// @ismany "$.index[*][?(@.name=='l1')].inner.module.items[*]" $l3_id $l4_use_id