Skip to content

Commit 260aa9f

Browse files
committed
Access attrs directly from HirId in rustc_passes::lang_items.
1 parent a50454d commit 260aa9f

File tree

1 file changed

+6
-14
lines changed

1 file changed

+6
-14
lines changed

compiler/rustc_passes/src/lang_items.rs

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ use crate::weak_lang_items;
1313
use rustc_middle::middle::cstore::ExternCrate;
1414
use rustc_middle::ty::TyCtxt;
1515

16-
use rustc_ast::Attribute;
1716
use rustc_errors::struct_span_err;
1817
use rustc_hir as hir;
1918
use rustc_hir::def_id::{DefId, LOCAL_CRATE};
@@ -30,29 +29,21 @@ struct LanguageItemCollector<'tcx> {
3029

3130
impl ItemLikeVisitor<'v> for LanguageItemCollector<'tcx> {
3231
fn visit_item(&mut self, item: &hir::Item<'_>) {
33-
self.check_for_lang(Target::from_item(item), item.hir_id(), item.attrs);
32+
self.check_for_lang(Target::from_item(item), item.hir_id());
3433

3534
if let hir::ItemKind::Enum(def, ..) = &item.kind {
3635
for variant in def.variants {
37-
self.check_for_lang(Target::Variant, variant.id, variant.attrs);
36+
self.check_for_lang(Target::Variant, variant.id);
3837
}
3938
}
4039
}
4140

4241
fn visit_trait_item(&mut self, trait_item: &hir::TraitItem<'_>) {
43-
self.check_for_lang(
44-
Target::from_trait_item(trait_item),
45-
trait_item.hir_id(),
46-
trait_item.attrs,
47-
)
42+
self.check_for_lang(Target::from_trait_item(trait_item), trait_item.hir_id())
4843
}
4944

5045
fn visit_impl_item(&mut self, impl_item: &hir::ImplItem<'_>) {
51-
self.check_for_lang(
52-
target_from_impl_item(self.tcx, impl_item),
53-
impl_item.hir_id(),
54-
impl_item.attrs,
55-
)
46+
self.check_for_lang(target_from_impl_item(self.tcx, impl_item), impl_item.hir_id())
5647
}
5748

5849
fn visit_foreign_item(&mut self, _: &hir::ForeignItem<'_>) {}
@@ -63,7 +54,8 @@ impl LanguageItemCollector<'tcx> {
6354
LanguageItemCollector { tcx, items: LanguageItems::new() }
6455
}
6556

66-
fn check_for_lang(&mut self, actual_target: Target, hir_id: HirId, attrs: &[Attribute]) {
57+
fn check_for_lang(&mut self, actual_target: Target, hir_id: HirId) {
58+
let attrs = self.tcx.hir().attrs(hir_id);
6759
let check_name = |attr, sym| self.tcx.sess.check_name(attr, sym);
6860
if let Some((value, span)) = extract(check_name, &attrs) {
6961
match ITEM_REFS.get(&value).cloned() {

0 commit comments

Comments
 (0)