mirror of
https://github.com/rust-lang/rust.git
synced 2025-06-05 03:38:29 +00:00
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:
commit
4ff78692db
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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() {
|
||||||
|
Loading…
Reference in New Issue
Block a user