@@ -123,10 +123,10 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
123123 match src. layout . ty . kind ( ) {
124124 // Floating point
125125 Float ( FloatTy :: F32 ) => {
126- return Ok ( self . cast_from_float ( src. to_scalar ( ) ? . to_f32 ( ) ?, cast_ty) . into ( ) ) ;
126+ return Ok ( self . cast_from_float ( src. to_scalar ( ) . to_f32 ( ) ?, cast_ty) . into ( ) ) ;
127127 }
128128 Float ( FloatTy :: F64 ) => {
129- return Ok ( self . cast_from_float ( src. to_scalar ( ) ? . to_f64 ( ) ?, cast_ty) . into ( ) ) ;
129+ return Ok ( self . cast_from_float ( src. to_scalar ( ) . to_f64 ( ) ?, cast_ty) . into ( ) ) ;
130130 }
131131 // The rest is integer/pointer-"like", including fn ptr casts
132132 _ => assert ! (
@@ -153,7 +153,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
153153 assert_eq ! ( dest_layout. size, self . pointer_size( ) ) ;
154154 assert ! ( src. layout. ty. is_unsafe_ptr( ) ) ;
155155 return match * * src {
156- Immediate :: ScalarPair ( data, _) => Ok ( data. check_init ( ) ? . into ( ) ) ,
156+ Immediate :: ScalarPair ( data, _) => Ok ( data. into ( ) ) ,
157157 Immediate :: Scalar ( ..) => span_bug ! (
158158 self . cur_span( ) ,
159159 "{:?} input to a fat-to-thin cast ({:?} -> {:?})" ,
@@ -167,7 +167,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
167167 }
168168
169169 // # The remaining source values are scalar and "int-like".
170- let scalar = src. to_scalar ( ) ? ;
170+ let scalar = src. to_scalar ( ) ;
171171 Ok ( self . cast_from_int_like ( scalar, src. layout , cast_ty) ?. into ( ) )
172172 }
173173
@@ -179,7 +179,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
179179 assert_matches ! ( src. layout. ty. kind( ) , ty:: RawPtr ( _) | ty:: FnPtr ( _) ) ;
180180 assert ! ( cast_ty. is_integral( ) ) ;
181181
182- let scalar = src. to_scalar ( ) ? ;
182+ let scalar = src. to_scalar ( ) ;
183183 let ptr = scalar. to_pointer ( self ) ?;
184184 match ptr. into_pointer_or_addr ( ) {
185185 Ok ( ptr) => M :: expose_ptr ( self , ptr) ?,
@@ -197,7 +197,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
197197 assert_matches ! ( cast_ty. kind( ) , ty:: RawPtr ( _) ) ;
198198
199199 // First cast to usize.
200- let scalar = src. to_scalar ( ) ? ;
200+ let scalar = src. to_scalar ( ) ;
201201 let addr = self . cast_from_int_like ( scalar, src. layout , self . tcx . types . usize ) ?;
202202 let addr = addr. to_machine_usize ( self ) ?;
203203
@@ -291,7 +291,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
291291
292292 match ( & src_pointee_ty. kind ( ) , & dest_pointee_ty. kind ( ) ) {
293293 ( & ty:: Array ( _, length) , & ty:: Slice ( _) ) => {
294- let ptr = self . read_immediate ( src) ? . to_scalar ( ) ?;
294+ let ptr = self . read_scalar ( src) ?;
295295 // u64 cast is from usize to u64, which is always good
296296 let val =
297297 Immediate :: new_slice ( ptr, length. eval_usize ( * self . tcx , self . param_env ) , self ) ;
@@ -303,7 +303,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
303303 // A NOP cast that doesn't actually change anything, should be allowed even with mismatching vtables.
304304 return self . write_immediate ( * val, dest) ;
305305 }
306- let ( old_data, old_vptr) = val. to_scalar_pair ( ) ? ;
306+ let ( old_data, old_vptr) = val. to_scalar_pair ( ) ;
307307 let old_vptr = old_vptr. to_pointer ( self ) ?;
308308 let ( ty, old_trait) = self . get_ptr_vtable ( old_vptr) ?;
309309 if old_trait != data_a. principal ( ) {
@@ -315,7 +315,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
315315 ( _, & ty:: Dynamic ( ref data, _) ) => {
316316 // Initial cast from sized to dyn trait
317317 let vtable = self . get_vtable_ptr ( src_pointee_ty, data. principal ( ) ) ?;
318- let ptr = self . read_immediate ( src) ? . to_scalar ( ) ?;
318+ let ptr = self . read_scalar ( src) ?;
319319 let val = Immediate :: new_dyn_trait ( ptr, vtable, & * self . tcx ) ;
320320 self . write_immediate ( val, dest)
321321 }
0 commit comments