about summary refs log tree commit diff
path: root/compiler/rustc_ty_utils/src/instance.rs
diff options
context:
space:
mode:
authorDaria Sukhonina <dariasukhonina@gmail.com>2024-05-03 15:47:23 +0300
committerDaria Sukhonina <dariasukhonina@gmail.com>2024-05-29 12:56:59 +0300
commit7cdd95e1a683c89baff762a6c7755951bcd32717 (patch)
tree3ba5f071259e448b986f70b762c980a8edcb383b /compiler/rustc_ty_utils/src/instance.rs
parenta47173c4f77b5e7c960ffe178eba2bc00bb91e31 (diff)
downloadrust-7cdd95e1a683c89baff762a6c7755951bcd32717.tar.gz
rust-7cdd95e1a683c89baff762a6c7755951bcd32717.zip
Optimize async drop glue for some old types
Diffstat (limited to 'compiler/rustc_ty_utils/src/instance.rs')
-rw-r--r--compiler/rustc_ty_utils/src/instance.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/rustc_ty_utils/src/instance.rs b/compiler/rustc_ty_utils/src/instance.rs
index 0d089205c1e..e4dcea785d4 100644
--- a/compiler/rustc_ty_utils/src/instance.rs
+++ b/compiler/rustc_ty_utils/src/instance.rs
@@ -4,6 +4,7 @@ use rustc_infer::infer::TyCtxtInferExt;
 use rustc_middle::bug;
 use rustc_middle::query::Providers;
 use rustc_middle::traits::{BuiltinImplSource, CodegenObligationError};
+use rustc_middle::ty::util::AsyncDropGlueMorphology;
 use rustc_middle::ty::GenericArgsRef;
 use rustc_middle::ty::{self, Instance, TyCtxt, TypeVisitableExt};
 use rustc_span::sym;
@@ -59,7 +60,7 @@ fn resolve_instance<'tcx>(
         } else if Some(def_id) == tcx.lang_items().async_drop_in_place_fn() {
             let ty = args.type_at(0);
 
-            if !ty.is_async_destructor_noop(tcx, param_env) {
+            if ty.async_drop_glue_morphology(tcx) != AsyncDropGlueMorphology::Noop {
                 match *ty.kind() {
                     ty::Closure(..)
                     | ty::CoroutineClosure(..)