Rollup merge of #125582 - scottmcm:less-from-usize, r=jieyouxu

Avoid a `FieldIdx::from_usize` in InstSimplify

Just a tiny cleanup I noticed in passing while looking at something unrelated.
This commit is contained in:
Jubilee 2024-05-26 15:28:29 -07:00 committed by GitHub
commit 4ff78692db
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 5 deletions

View File

@ -142,10 +142,10 @@ impl<'tcx> ValueAnalysis<'tcx> for ConstAnalysis<'_, 'tcx> {
_ => return, _ => return,
}; };
if let Some(variant_target_idx) = variant_target { if let Some(variant_target_idx) = variant_target {
for (field_index, operand) in operands.iter().enumerate() { for (field_index, operand) in operands.iter_enumerated() {
if let Some(field) = self.map().apply( if let Some(field) = self.map().apply(
variant_target_idx, variant_target_idx,
TrackElem::Field(FieldIdx::from_usize(field_index)), TrackElem::Field(field_index),
) { ) {
self.assign_operand(state, field, operand); self.assign_operand(state, field, operand);
} }

View File

@ -9,7 +9,6 @@ use rustc_middle::ty::layout::ValidityRequirement;
use rustc_middle::ty::{self, GenericArgsRef, ParamEnv, Ty, TyCtxt}; use rustc_middle::ty::{self, GenericArgsRef, ParamEnv, Ty, TyCtxt};
use rustc_span::sym; use rustc_span::sym;
use rustc_span::symbol::Symbol; use rustc_span::symbol::Symbol;
use rustc_target::abi::FieldIdx;
use rustc_target::spec::abi::Abi; use rustc_target::spec::abi::Abi;
pub struct InstSimplify; pub struct InstSimplify;
@ -217,11 +216,11 @@ impl<'tcx> InstSimplifyContext<'tcx, '_> {
&& let Some(place) = operand.place() && let Some(place) = operand.place()
{ {
let variant = adt_def.non_enum_variant(); let variant = adt_def.non_enum_variant();
for (i, field) in variant.fields.iter().enumerate() { for (i, field) in variant.fields.iter_enumerated() {
let field_ty = field.ty(self.tcx, args); let field_ty = field.ty(self.tcx, args);
if field_ty == *cast_ty { if field_ty == *cast_ty {
let place = place.project_deeper( let place = place.project_deeper(
&[ProjectionElem::Field(FieldIdx::from_usize(i), *cast_ty)], &[ProjectionElem::Field(i, *cast_ty)],
self.tcx, self.tcx,
); );
let operand = if operand.is_move() { let operand = if operand.is_move() {