2
2
3
3
use crate :: ich:: NodeIdHashingMode ;
4
4
use crate :: middle:: codegen_fn_attrs:: CodegenFnAttrFlags ;
5
- use crate :: mir:: interpret:: { sign_extend, truncate} ;
6
5
use crate :: ty:: fold:: TypeFolder ;
7
6
use crate :: ty:: layout:: IntegerExt ;
8
7
use crate :: ty:: query:: TyCtxtAt ;
@@ -38,7 +37,7 @@ impl<'tcx> fmt::Display for Discr<'tcx> {
38
37
let size = ty:: tls:: with ( |tcx| Integer :: from_attr ( & tcx, SignedInt ( ity) ) . size ( ) ) ;
39
38
let x = self . val ;
40
39
// sign extend the raw representation to be an i128
41
- let x = sign_extend ( x, size ) as i128 ;
40
+ let x = size . sign_extend ( x) as i128 ;
42
41
write ! ( fmt, "{}" , x)
43
42
}
44
43
_ => write ! ( fmt, "{}" , self . val) ,
@@ -47,7 +46,7 @@ impl<'tcx> fmt::Display for Discr<'tcx> {
47
46
}
48
47
49
48
fn signed_min ( size : Size ) -> i128 {
50
- sign_extend ( 1_u128 << ( size. bits ( ) - 1 ) , size ) as i128
49
+ size . sign_extend ( 1_u128 << ( size. bits ( ) - 1 ) ) as i128
51
50
}
52
51
53
52
fn signed_max ( size : Size ) -> i128 {
@@ -77,14 +76,14 @@ impl<'tcx> Discr<'tcx> {
77
76
let ( val, oflo) = if signed {
78
77
let min = signed_min ( size) ;
79
78
let max = signed_max ( size) ;
80
- let val = sign_extend ( self . val , size ) as i128 ;
79
+ let val = size . sign_extend ( self . val ) as i128 ;
81
80
assert ! ( n < ( i128 :: MAX as u128 ) ) ;
82
81
let n = n as i128 ;
83
82
let oflo = val > max - n;
84
83
let val = if oflo { min + ( n - ( max - val) - 1 ) } else { val + n } ;
85
84
// zero the upper bits
86
85
let val = val as u128 ;
87
- let val = truncate ( val, size ) ;
86
+ let val = size . truncate ( val) ;
88
87
( val, oflo)
89
88
} else {
90
89
let max = unsigned_max ( size) ;
@@ -650,7 +649,7 @@ impl<'tcx> ty::TyS<'tcx> {
650
649
let val = match self . kind ( ) {
651
650
ty:: Int ( _) | ty:: Uint ( _) => {
652
651
let ( size, signed) = int_size_and_signed ( tcx, self ) ;
653
- let val = if signed { truncate ( signed_min ( size) as u128 , size ) } else { 0 } ;
652
+ let val = if signed { size . truncate ( signed_min ( size) as u128 ) } else { 0 } ;
654
653
Some ( val)
655
654
}
656
655
ty:: Char => Some ( 0 ) ,
0 commit comments