Access attrs directly from HirId in rustc_lint::levels.
This commit is contained in:
parent
b84bdf1dae
commit
7e16e1e815
1 changed files with 12 additions and 11 deletions
|
@ -566,11 +566,12 @@ struct LintLevelMapBuilder<'a, 'tcx> {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl LintLevelMapBuilder<'_, '_> {
|
impl LintLevelMapBuilder<'_, '_> {
|
||||||
fn with_lint_attrs<F>(&mut self, id: hir::HirId, attrs: &[ast::Attribute], f: F)
|
fn with_lint_attrs<F>(&mut self, id: hir::HirId, f: F)
|
||||||
where
|
where
|
||||||
F: FnOnce(&mut Self),
|
F: FnOnce(&mut Self),
|
||||||
{
|
{
|
||||||
let is_crate_hir = id == hir::CRATE_HIR_ID;
|
let is_crate_hir = id == hir::CRATE_HIR_ID;
|
||||||
|
let attrs = self.tcx.hir().attrs(id);
|
||||||
let push = self.levels.push(attrs, self.store, is_crate_hir);
|
let push = self.levels.push(attrs, self.store, is_crate_hir);
|
||||||
if push.changed {
|
if push.changed {
|
||||||
self.levels.register_id(id);
|
self.levels.register_id(id);
|
||||||
|
@ -588,19 +589,19 @@ impl<'tcx> intravisit::Visitor<'tcx> for LintLevelMapBuilder<'_, 'tcx> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_param(&mut self, param: &'tcx hir::Param<'tcx>) {
|
fn visit_param(&mut self, param: &'tcx hir::Param<'tcx>) {
|
||||||
self.with_lint_attrs(param.hir_id, ¶m.attrs, |builder| {
|
self.with_lint_attrs(param.hir_id, |builder| {
|
||||||
intravisit::walk_param(builder, param);
|
intravisit::walk_param(builder, param);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_item(&mut self, it: &'tcx hir::Item<'tcx>) {
|
fn visit_item(&mut self, it: &'tcx hir::Item<'tcx>) {
|
||||||
self.with_lint_attrs(it.hir_id(), &it.attrs, |builder| {
|
self.with_lint_attrs(it.hir_id(), |builder| {
|
||||||
intravisit::walk_item(builder, it);
|
intravisit::walk_item(builder, it);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_foreign_item(&mut self, it: &'tcx hir::ForeignItem<'tcx>) {
|
fn visit_foreign_item(&mut self, it: &'tcx hir::ForeignItem<'tcx>) {
|
||||||
self.with_lint_attrs(it.hir_id(), &it.attrs, |builder| {
|
self.with_lint_attrs(it.hir_id(), |builder| {
|
||||||
intravisit::walk_foreign_item(builder, it);
|
intravisit::walk_foreign_item(builder, it);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -613,13 +614,13 @@ impl<'tcx> intravisit::Visitor<'tcx> for LintLevelMapBuilder<'_, 'tcx> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_expr(&mut self, e: &'tcx hir::Expr<'tcx>) {
|
fn visit_expr(&mut self, e: &'tcx hir::Expr<'tcx>) {
|
||||||
self.with_lint_attrs(e.hir_id, &e.attrs, |builder| {
|
self.with_lint_attrs(e.hir_id, |builder| {
|
||||||
intravisit::walk_expr(builder, e);
|
intravisit::walk_expr(builder, e);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_struct_field(&mut self, s: &'tcx hir::StructField<'tcx>) {
|
fn visit_struct_field(&mut self, s: &'tcx hir::StructField<'tcx>) {
|
||||||
self.with_lint_attrs(s.hir_id, &s.attrs, |builder| {
|
self.with_lint_attrs(s.hir_id, |builder| {
|
||||||
intravisit::walk_struct_field(builder, s);
|
intravisit::walk_struct_field(builder, s);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -630,31 +631,31 @@ impl<'tcx> intravisit::Visitor<'tcx> for LintLevelMapBuilder<'_, 'tcx> {
|
||||||
g: &'tcx hir::Generics<'tcx>,
|
g: &'tcx hir::Generics<'tcx>,
|
||||||
item_id: hir::HirId,
|
item_id: hir::HirId,
|
||||||
) {
|
) {
|
||||||
self.with_lint_attrs(v.id, &v.attrs, |builder| {
|
self.with_lint_attrs(v.id, |builder| {
|
||||||
intravisit::walk_variant(builder, v, g, item_id);
|
intravisit::walk_variant(builder, v, g, item_id);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_local(&mut self, l: &'tcx hir::Local<'tcx>) {
|
fn visit_local(&mut self, l: &'tcx hir::Local<'tcx>) {
|
||||||
self.with_lint_attrs(l.hir_id, &l.attrs, |builder| {
|
self.with_lint_attrs(l.hir_id, |builder| {
|
||||||
intravisit::walk_local(builder, l);
|
intravisit::walk_local(builder, l);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_arm(&mut self, a: &'tcx hir::Arm<'tcx>) {
|
fn visit_arm(&mut self, a: &'tcx hir::Arm<'tcx>) {
|
||||||
self.with_lint_attrs(a.hir_id, &a.attrs, |builder| {
|
self.with_lint_attrs(a.hir_id, |builder| {
|
||||||
intravisit::walk_arm(builder, a);
|
intravisit::walk_arm(builder, a);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_trait_item(&mut self, trait_item: &'tcx hir::TraitItem<'tcx>) {
|
fn visit_trait_item(&mut self, trait_item: &'tcx hir::TraitItem<'tcx>) {
|
||||||
self.with_lint_attrs(trait_item.hir_id(), &trait_item.attrs, |builder| {
|
self.with_lint_attrs(trait_item.hir_id(), |builder| {
|
||||||
intravisit::walk_trait_item(builder, trait_item);
|
intravisit::walk_trait_item(builder, trait_item);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem<'tcx>) {
|
fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem<'tcx>) {
|
||||||
self.with_lint_attrs(impl_item.hir_id(), &impl_item.attrs, |builder| {
|
self.with_lint_attrs(impl_item.hir_id(), |builder| {
|
||||||
intravisit::walk_impl_item(builder, impl_item);
|
intravisit::walk_impl_item(builder, impl_item);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue