Visit ExprField for lint levels.

This commit is contained in:
Camille GILLOT 2023-09-13 19:44:47 +00:00
parent ffc48e3eda
commit 01d7bf09f3
3 changed files with 24 additions and 0 deletions

View File

@ -157,6 +157,10 @@ impl<'tcx, T: LateLintPass<'tcx>> hir_visit::Visitor<'tcx> for LateContextAndPas
hir_visit::walk_pat(self, p);
}
fn visit_expr_field(&mut self, field: &'tcx hir::ExprField<'tcx>) {
self.with_lint_attrs(field.hir_id, |cx| hir_visit::walk_expr_field(cx, field))
}
fn visit_expr(&mut self, e: &'tcx hir::Expr<'tcx>) {
ensure_sufficient_stack(|| {
self.with_lint_attrs(e.hir_id, |cx| {

View File

@ -333,6 +333,11 @@ impl<'tcx> Visitor<'tcx> for LintLevelsBuilder<'_, LintLevelQueryMap<'tcx>> {
intravisit::walk_expr(self, e);
}
fn visit_expr_field(&mut self, f: &'tcx hir::ExprField<'tcx>) {
self.add_id(f.hir_id);
intravisit::walk_expr_field(self, f);
}
fn visit_field_def(&mut self, s: &'tcx hir::FieldDef<'tcx>) {
self.add_id(s.hir_id);
intravisit::walk_field_def(self, s);

View File

@ -0,0 +1,15 @@
// check-pass
pub struct A {
pub x: u32,
}
#[deny(unused_comparisons)]
pub fn foo(y: u32) -> A {
A {
#[allow(unused_comparisons)]
x: if y < 0 { 1 } else { 2 },
}
}
fn main() {}