about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2023-07-05 16:16:03 +0000
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2023-07-05 16:16:03 +0000
commita4f99149fce5ce1ea03a85f73d06d29ee7bd6d5e (patch)
treebdb1adb7ee8d328d8f1aab479fa6d1cb444f44c3
parent4aa4fecf897869b656d91791b8dcb03db189733d (diff)
downloadrust-a4f99149fce5ce1ea03a85f73d06d29ee7bd6d5e.tar.gz
rust-a4f99149fce5ce1ea03a85f73d06d29ee7bd6d5e.zip
Patch clippy
-rw-r--r--clippy_utils/src/consts.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/clippy_utils/src/consts.rs b/clippy_utils/src/consts.rs
index dd3cda8ec52..b7f62af75b8 100644
--- a/clippy_utils/src/consts.rs
+++ b/clippy_utils/src/consts.rs
@@ -725,13 +725,14 @@ fn field_of_struct<'tcx>(
     result: mir::ConstantKind<'tcx>,
     field: &Ident,
 ) -> Option<mir::ConstantKind<'tcx>> {
-    if let Some(dc) = lcx.tcx.try_destructure_mir_constant(lcx.param_env.and(result))
+    if let mir::ConstantKind::Val(result, ty) = result
+        && let Some(dc) = lcx.tcx.try_destructure_mir_constant_for_diagnostics((result, ty))
         && let Some(dc_variant) = dc.variant
         && let Some(variant) = adt_def.variants().get(dc_variant)
         && let Some(field_idx) = variant.fields.iter().position(|el| el.name == field.name)
-        && let Some(dc_field) = dc.fields.get(field_idx)
+        && let Some(&(val, ty)) = dc.fields.get(field_idx)
     {
-        Some(*dc_field)
+        Some(mir::ConstantKind::Val(val, ty))
     }
     else {
         None