mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-15 20:45:45 +03:00
reduce an mir code repetition like (n << amt) >> amt
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
|
||||
use rustc::hir;
|
||||
use rustc::mir;
|
||||
use rustc::mir::interpret::truncate;
|
||||
use rustc::ty::{self, Ty};
|
||||
use rustc::ty::layout::{self, Size, Align, LayoutOf, TyLayout, HasDataLayout, VariantIdx};
|
||||
use rustc::ty::TypeFoldable;
|
||||
@@ -959,8 +960,7 @@ pub fn write_discriminant_index(
|
||||
// their computation, but the in-memory tag is the smallest possible
|
||||
// representation
|
||||
let size = tag.value.size(self);
|
||||
let shift = 128 - size.bits();
|
||||
let discr_val = (discr_val << shift) >> shift;
|
||||
let discr_val = truncate(discr_val, size);
|
||||
|
||||
let discr_dest = self.place_field(dest, 0)?;
|
||||
self.write_scalar(Scalar::from_uint(discr_val, size), discr_dest)?;
|
||||
|
||||
Reference in New Issue
Block a user