use try_normalize_erasing_regions in needs_drop

This commit is contained in:
b-naber
2021-12-02 20:30:35 +01:00
parent d9baa36190
commit a11994e423
4 changed files with 60 additions and 4 deletions

View File

@@ -788,10 +788,14 @@ impl<'tcx> ty::TyS<'tcx> {
[component_ty] => component_ty,
_ => self,
};
// This doesn't depend on regions, so try to minimize distinct
// query keys used.
let erased = tcx.normalize_erasing_regions(param_env, query_ty);
tcx.needs_drop_raw(param_env.and(erased))
// If normalization fails, we just use `query_ty`.
let query_ty =
tcx.try_normalize_erasing_regions(param_env, query_ty).unwrap_or(query_ty);
tcx.needs_drop_raw(param_env.and(query_ty))
}
}
}