We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent aadbc45 commit 423ae56Copy full SHA for 423ae56
src/librustc/ty/sty.rs
@@ -3,7 +3,7 @@
3
use crate::hir;
4
use crate::hir::def_id::DefId;
5
use crate::infer::canonical::Canonical;
6
-use crate::mir::interpret::ConstValue;
+use crate::mir::interpret::{ConstValue, truncate};
7
use crate::middle::region;
8
use polonius_engine::Atom;
9
use rustc_data_structures::indexed_vec::Idx;
@@ -2118,8 +2118,7 @@ impl<'tcx> Const<'tcx> {
2118
let size = tcx.layout_of(ty).unwrap_or_else(|e| {
2119
panic!("could not compute layout for {:?}: {:?}", ty, e)
2120
}).size;
2121
- let shift = 128 - size.bits();
2122
- let truncated = (bits << shift) >> shift;
+ let truncated = truncate(bits, size);
2123
assert_eq!(truncated, bits, "from_bits called with untruncated value");
2124
Self::from_scalar(Scalar::Bits { bits, size: size.bytes() as u8 }, ty.value)
2125
}
0 commit comments