about summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authorCamille GILLOT <gillot.camille@gmail.com>2023-10-01 13:47:50 +0000
committerCamille GILLOT <gillot.camille@gmail.com>2023-10-01 14:00:07 +0000
commitfd51cc6bc958352c60468a0b68e1e617c45f3706 (patch)
tree85738117aceaa93c8a93e9aef70cd7e524a47ad9 /compiler
parent8fa7bdf191d8658e5ab670766ac0b2d40c7d83c2 (diff)
downloadrust-fd51cc6bc958352c60468a0b68e1e617c45f3706.tar.gz
rust-fd51cc6bc958352c60468a0b68e1e617c45f3706.zip
Use DefKind to check for generator.
Diffstat (limited to 'compiler')
-rw-r--r--compiler/rustc_mir_transform/src/const_prop_lint.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/rustc_mir_transform/src/const_prop_lint.rs b/compiler/rustc_mir_transform/src/const_prop_lint.rs
index 64e262c6c93..95d87c288da 100644
--- a/compiler/rustc_mir_transform/src/const_prop_lint.rs
+++ b/compiler/rustc_mir_transform/src/const_prop_lint.rs
@@ -49,8 +49,9 @@ impl<'tcx> MirLint<'tcx> for ConstProp {
         }
 
         let def_id = body.source.def_id().expect_local();
-        let is_fn_like = tcx.def_kind(def_id).is_fn_like();
-        let is_assoc_const = tcx.def_kind(def_id) == DefKind::AssocConst;
+        let def_kind = tcx.def_kind(def_id);
+        let is_fn_like = def_kind.is_fn_like();
+        let is_assoc_const = def_kind == DefKind::AssocConst;
 
         // Only run const prop on functions, methods, closures and associated constants
         if !is_fn_like && !is_assoc_const {
@@ -59,10 +60,9 @@ impl<'tcx> MirLint<'tcx> for ConstProp {
             return;
         }
 
-        let is_generator = tcx.type_of(def_id.to_def_id()).instantiate_identity().is_generator();
         // FIXME(welseywiser) const prop doesn't work on generators because of query cycles
         // computing their layout.
-        if is_generator {
+        if let DefKind::Generator = def_kind {
             trace!("ConstProp skipped for generator {:?}", def_id);
             return;
         }