about summary refs log tree commit diff
path: root/compiler/rustc_const_eval/src/transform
diff options
context:
space:
mode:
authoryukang <moorekang@gmail.com>2022-11-15 13:20:55 +0800
committeryukang <moorekang@gmail.com>2022-11-16 17:48:13 +0800
commit20ea083d87ca46c5bea9c2d37050f3673fcb141b (patch)
treef8276f205dd0099aa7eced2e9a9d81a17c480842 /compiler/rustc_const_eval/src/transform
parentbebd57a9602e48431c90274fbf7d96683b0708b6 (diff)
downloadrust-20ea083d87ca46c5bea9c2d37050f3673fcb141b.tar.gz
rust-20ea083d87ca46c5bea9c2d37050f3673fcb141b.zip
fix #104390, fix ICE in in_operand for ty error
Diffstat (limited to 'compiler/rustc_const_eval/src/transform')
-rw-r--r--compiler/rustc_const_eval/src/transform/check_consts/qualifs.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/rustc_const_eval/src/transform/check_consts/qualifs.rs b/compiler/rustc_const_eval/src/transform/check_consts/qualifs.rs
index d995d533ca3..8a920fbfd51 100644
--- a/compiler/rustc_const_eval/src/transform/check_consts/qualifs.rs
+++ b/compiler/rustc_const_eval/src/transform/check_consts/qualifs.rs
@@ -351,7 +351,11 @@ where
     // FIXME(valtrees): check whether const qualifs should behave the same
     // way for type and mir constants.
     let uneval = match constant.literal {
-        ConstantKind::Ty(ct) if matches!(ct.kind(), ty::ConstKind::Param(_)) => None,
+        ConstantKind::Ty(ct)
+            if matches!(ct.kind(), ty::ConstKind::Param(_) | ty::ConstKind::Error(_)) =>
+        {
+            None
+        }
         ConstantKind::Ty(c) => bug!("expected ConstKind::Param here, found {:?}", c),
         ConstantKind::Unevaluated(uv, _) => Some(uv),
         ConstantKind::Val(..) => None,