#![feature(rustc_private)] //@ edition: 2021 //@ check-pass // Checks that the derive macro still works even if the surrounding code has // shadowed the relevant library types. extern crate rustc_macros; mod submod { use rustc_macros::TryFromU32; struct Result; trait TryFrom {} #[allow(non_camel_case_types)] struct u32; struct Ok; struct Err; mod core {} mod std {} #[derive(TryFromU32)] pub(crate) enum MyEnum { Zero, One, } } fn main() { use submod::MyEnum; let _: Result = MyEnum::try_from(1u32); }