1
Fork 0

Ensure calculcate_dtor is only ever called on local types

This commit is contained in:
Oli Scherer 2025-03-27 12:48:54 +00:00
parent 2b1c416da7
commit 51184c70c8
2 changed files with 4 additions and 4 deletions

View file

@ -114,11 +114,11 @@ pub fn provide(providers: &mut Providers) {
}
fn adt_destructor(tcx: TyCtxt<'_>, def_id: LocalDefId) -> Option<ty::Destructor> {
tcx.calculate_dtor(def_id.to_def_id(), always_applicable::check_drop_impl)
tcx.calculate_dtor(def_id, always_applicable::check_drop_impl)
}
fn adt_async_destructor(tcx: TyCtxt<'_>, def_id: LocalDefId) -> Option<ty::AsyncDestructor> {
tcx.calculate_async_dtor(def_id.to_def_id(), always_applicable::check_drop_impl)
tcx.calculate_async_dtor(def_id, always_applicable::check_drop_impl)
}
/// Given a `DefId` for an opaque type in return position, find its parent item's return

View file

@ -389,7 +389,7 @@ impl<'tcx> TyCtxt<'tcx> {
/// Calculate the destructor of a given type.
pub fn calculate_dtor(
self,
adt_did: DefId,
adt_did: LocalDefId,
validate: impl Fn(Self, DefId) -> Result<(), ErrorGuaranteed>,
) -> Option<ty::Destructor> {
let drop_trait = self.lang_items().drop_trait()?;
@ -426,7 +426,7 @@ impl<'tcx> TyCtxt<'tcx> {
/// Calculate the async destructor of a given type.
pub fn calculate_async_dtor(
self,
adt_did: DefId,
adt_did: LocalDefId,
validate: impl Fn(Self, DefId) -> Result<(), ErrorGuaranteed>,
) -> Option<ty::AsyncDestructor> {
let async_drop_trait = self.lang_items().async_drop_trait()?;