1
Fork 0

Visit PatField when collecting lint levels

This commit is contained in:
Michael Goulet 2025-03-13 00:22:16 +00:00
parent 0998d4095b
commit 8bf33c213f
2 changed files with 26 additions and 0 deletions

View file

@ -299,6 +299,11 @@ impl<'tcx> Visitor<'tcx> for LintLevelsBuilder<'_, LintLevelQueryMap<'tcx>> {
intravisit::walk_expr(self, e); intravisit::walk_expr(self, e);
} }
fn visit_pat_field(&mut self, f: &'tcx hir::PatField<'tcx>) -> Self::Result {
self.add_id(f.hir_id);
intravisit::walk_pat_field(self, f);
}
fn visit_expr_field(&mut self, f: &'tcx hir::ExprField<'tcx>) { fn visit_expr_field(&mut self, f: &'tcx hir::ExprField<'tcx>) {
self.add_id(f.hir_id); self.add_id(f.hir_id);
intravisit::walk_expr_field(self, f); intravisit::walk_expr_field(self, f);

View file

@ -0,0 +1,21 @@
//@ check-pass
// Ensure we collect lint levels from pat fields in structs.
#![deny(unused_variables)]
pub struct Foo {
bar: u32,
baz: u32,
}
pub fn test(foo: Foo) {
let Foo {
#[allow(unused_variables)]
bar,
#[allow(unused_variables)]
baz,
} = foo;
}
fn main() {}