// Under the 2015 edition without the keyword_idents lint, `dyn` is
// entirely acceptable as an identifier.

// build-pass (FIXME(62277): could be check-pass?)

#![allow(non_camel_case_types)]

mod outer_mod {
    pub mod dyn {
        pub struct dyn;
    }
}
use outer_mod::dyn::dyn;

fn main() {
    match dyn { dyn => {} }
    macro_defn::dyn();
}
mod macro_defn {
    macro_rules! dyn {
        () => { ::outer_mod::dyn::dyn }
    }

    pub fn dyn() -> ::outer_mod::dyn::dyn {
        dyn!()
    }
}
