GenericArgKind::as_{type,const,region}
rustc_fluent_macro
rustc_macros
Please read the rustc-dev-guide chapter on Backend Agnostic Codegen.