]> git.proxmox.com Git - rustc.git/blame - compiler/rustc_interface/src/proc_macro_decls.rs
New upstream version 1.70.0+dfsg1
[rustc.git] / compiler / rustc_interface / src / proc_macro_decls.rs
CommitLineData
353b0b11 1use rustc_ast::attr;
17df50a5 2use rustc_hir::def_id::LocalDefId;
ba9703b0
XL
3use rustc_middle::ty::query::Providers;
4use rustc_middle::ty::TyCtxt;
dfeec247 5use rustc_span::symbol::sym;
9e0c209e 6
17df50a5 7fn proc_macro_decls_static(tcx: TyCtxt<'_>, (): ()) -> Option<LocalDefId> {
487cf647 8 let mut decls = None;
0731742a 9
04454e1e 10 for id in tcx.hir().items() {
487cf647 11 let attrs = tcx.hir().attrs(id.hir_id());
353b0b11 12 if attr::contains_name(attrs, sym::rustc_proc_macro_decls) {
487cf647 13 decls = Some(id.owner_id.def_id);
9e0c209e
SL
14 }
15 }
476ff2be 16
487cf647 17 decls
9e0c209e 18}
476ff2be 19
f035d41b 20pub(crate) fn provide(providers: &mut Providers) {
dfeec247 21 *providers = Providers { proc_macro_decls_static, ..*providers };
0731742a 22}