Skip to content

Commit 212a06e

Browse files
committed
Match on TraitItem exhaustively.
1 parent 6c5f077 commit 212a06e

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

compiler/rustc_hir/src/intravisit.rs

+11-14
Original file line numberDiff line numberDiff line change
@@ -946,33 +946,30 @@ pub fn walk_fn<'v, V: Visitor<'v>>(
946946
}
947947

948948
pub fn walk_trait_item<'v, V: Visitor<'v>>(visitor: &mut V, trait_item: &'v TraitItem<'v>) {
949-
visitor.visit_ident(trait_item.ident);
950-
visitor.visit_generics(&trait_item.generics);
951-
visitor.visit_defaultness(&trait_item.defaultness);
952-
match trait_item.kind {
949+
// N.B., deliberately force a compilation error if/when new fields are added.
950+
let TraitItem { ident, generics, ref defaultness, ref kind, span, def_id: _ } = *trait_item;
951+
let hir_id = trait_item.hir_id();
952+
visitor.visit_ident(ident);
953+
visitor.visit_generics(&generics);
954+
visitor.visit_defaultness(&defaultness);
955+
match *kind {
953956
TraitItemKind::Const(ref ty, default) => {
954-
visitor.visit_id(trait_item.hir_id());
957+
visitor.visit_id(hir_id);
955958
visitor.visit_ty(ty);
956959
walk_list!(visitor, visit_nested_body, default);
957960
}
958961
TraitItemKind::Fn(ref sig, TraitFn::Required(param_names)) => {
959-
visitor.visit_id(trait_item.hir_id());
962+
visitor.visit_id(hir_id);
960963
visitor.visit_fn_decl(&sig.decl);
961964
for &param_name in param_names {
962965
visitor.visit_ident(param_name);
963966
}
964967
}
965968
TraitItemKind::Fn(ref sig, TraitFn::Provided(body_id)) => {
966-
visitor.visit_fn(
967-
FnKind::Method(trait_item.ident, sig),
968-
&sig.decl,
969-
body_id,
970-
trait_item.span,
971-
trait_item.hir_id(),
972-
);
969+
visitor.visit_fn(FnKind::Method(ident, sig), &sig.decl, body_id, span, hir_id);
973970
}
974971
TraitItemKind::Type(bounds, ref default) => {
975-
visitor.visit_id(trait_item.hir_id());
972+
visitor.visit_id(hir_id);
976973
walk_list!(visitor, visit_param_bound, bounds);
977974
walk_list!(visitor, visit_ty, default);
978975
}

0 commit comments

Comments
 (0)