diff options
| author | Matthew Jasper <mjjasper1@gmail.com> | 2021-11-18 22:29:07 +0000 |
|---|---|---|
| committer | Noah Lev <camelidcamel@gmail.com> | 2022-01-07 13:31:36 -0800 |
| commit | 3b7d496f72a3a9745756c88179b4a23cc550f89e (patch) | |
| tree | 5e63dfd1004a46b4904c78c666187742b3bb73a7 /compiler/rustc_passes | |
| parent | 1b057a33bdf0eb6a49e49f036c84f6f1e84ce3a1 (diff) | |
| download | rust-3b7d496f72a3a9745756c88179b4a23cc550f89e.tar.gz rust-3b7d496f72a3a9745756c88179b4a23cc550f89e.zip | |
Add query to avoid name comparison in `leaf_def`
Diffstat (limited to 'compiler/rustc_passes')
| -rw-r--r-- | compiler/rustc_passes/src/check_const.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/compiler/rustc_passes/src/check_const.rs b/compiler/rustc_passes/src/check_const.rs index a5a65740707..b755f686f6a 100644 --- a/compiler/rustc_passes/src/check_const.rs +++ b/compiler/rustc_passes/src/check_const.rs @@ -93,26 +93,29 @@ impl<'tcx> hir::itemlikevisit::ItemLikeVisitor<'tcx> for CheckConstTraitVisitor< for trait_item in self.tcx.associated_items(trait_def_id).in_definition_order() { if let ty::AssocItem { - kind: ty::AssocKind::Fn, ident, defaultness, .. - } = trait_item + kind: ty::AssocKind::Fn, + defaultness, + def_id: trait_item_id, + .. + } = *trait_item { // we can ignore functions that do not have default bodies: // if those are unimplemented it will be catched by typeck. if !defaultness.has_value() || self .tcx - .has_attr(trait_item.def_id, sym::default_method_body_is_const) + .has_attr(trait_item_id, sym::default_method_body_is_const) { continue; } let is_implemented = ancestors - .leaf_def(self.tcx, trait_item.ident, trait_item.kind) + .leaf_def(self.tcx, trait_item_id) .map(|node_item| !node_item.defining_node.is_from_trait()) .unwrap_or(false); if !is_implemented { - to_implement.push(ident.to_string()); + to_implement.push(self.tcx.item_name(trait_item_id).to_string()); } } } |
