]>
Commit | Line | Data |
---|---|---|
353b0b11 | 1 | use rustc_ast::attr; |
17df50a5 | 2 | use rustc_hir::def_id::LocalDefId; |
ba9703b0 XL |
3 | use rustc_middle::ty::query::Providers; |
4 | use rustc_middle::ty::TyCtxt; | |
dfeec247 | 5 | use rustc_span::symbol::sym; |
9e0c209e | 6 | |
17df50a5 | 7 | fn 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 | 20 | pub(crate) fn provide(providers: &mut Providers) { |
dfeec247 | 21 | *providers = Providers { proc_macro_decls_static, ..*providers }; |
0731742a | 22 | } |