1
Fork 0

Fix E0657.

This commit is contained in:
Camille GILLOT 2021-01-31 11:01:49 +01:00
parent 996dc8d5c5
commit 7878fa70d6

View file

@ -632,18 +632,26 @@ impl<'a, 'tcx> Visitor<'tcx> for LifetimeContext<'a, 'tcx> {
let hir_id = self.tcx.hir().local_def_id_to_hir_id(def_id);
// Ensure that the parent of the def is an item, not HRTB
let parent_id = self.tcx.hir().get_parent_node(hir_id);
let parent_item_id =
hir::ItemId { def_id: parent_id.expect_owner() };
let parent_impl_id =
hir::ImplItemId { def_id: parent_id.expect_owner() };
let parent_is_item = if let Some(parent_def_id) =
parent_id.as_owner()
{
let parent_item_id = hir::ItemId { def_id: parent_def_id };
let parent_impl_id = hir::ImplItemId { def_id: parent_def_id };
let parent_trait_id =
hir::TraitItemId { def_id: parent_id.expect_owner() };
hir::TraitItemId { def_id: parent_def_id };
let parent_foreign_id =
hir::ForeignItemId { def_id: parent_def_id };
let krate = self.tcx.hir().krate();
if !(krate.items.contains_key(&parent_item_id)
krate.items.contains_key(&parent_item_id)
|| krate.impl_items.contains_key(&parent_impl_id)
|| krate.trait_items.contains_key(&parent_trait_id))
{
|| krate.trait_items.contains_key(&parent_trait_id)
|| krate.foreign_items.contains_key(&parent_foreign_id)
} else {
false
};
if !parent_is_item {
struct_span_err!(
self.tcx.sess,
lifetime.span,