@@ -52,7 +52,10 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
5252 }
5353
5454 if self . tcx . has_attr ( def_id, sym:: rustc_args_required_const) {
55- bug ! ( "reifying a fn ptr that requires const arguments" ) ;
55+ span_bug ! (
56+ self . cur_span( ) ,
57+ "reifying a fn ptr that requires const arguments"
58+ ) ;
5659 }
5760
5861 let instance = ty:: Instance :: resolve_for_fn_ptr (
@@ -66,7 +69,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
6669 let fn_ptr = self . memory . create_fn_alloc ( FnVal :: Instance ( instance) ) ;
6770 self . write_scalar ( fn_ptr, dest) ?;
6871 }
69- _ => bug ! ( "reify fn pointer on {:?}" , src. layout. ty) ,
72+ _ => span_bug ! ( self . cur_span ( ) , "reify fn pointer on {:?}" , src. layout. ty) ,
7073 }
7174 }
7275
@@ -77,7 +80,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
7780 // No change to value
7881 self . write_immediate ( * src, dest) ?;
7982 }
80- _ => bug ! ( "fn to unsafe fn cast on {:?}" , cast_ty) ,
83+ _ => span_bug ! ( self . cur_span ( ) , "fn to unsafe fn cast on {:?}" , cast_ty) ,
8184 }
8285 }
8386
@@ -99,7 +102,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
99102 let fn_ptr = self . memory . create_fn_alloc ( FnVal :: Instance ( instance) ) ;
100103 self . write_scalar ( fn_ptr, dest) ?;
101104 }
102- _ => bug ! ( "closure fn pointer on {:?}" , src. layout. ty) ,
105+ _ => span_bug ! ( self . cur_span ( ) , "closure fn pointer on {:?}" , src. layout. ty) ,
103106 }
104107 }
105108 }
@@ -162,7 +165,8 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
162165 assert ! ( src. layout. ty. is_unsafe_ptr( ) ) ;
163166 return match * src {
164167 Immediate :: ScalarPair ( data, _) => Ok ( data. into ( ) ) ,
165- Immediate :: Scalar ( ..) => bug ! (
168+ Immediate :: Scalar ( ..) => span_bug ! (
169+ self . cur_span( ) ,
166170 "{:?} input to a fat-to-thin cast ({:?} -> {:?})" ,
167171 * src,
168172 src. layout. ty,
@@ -216,7 +220,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
216220 }
217221
218222 // Casts to bool are not permitted by rustc, no need to handle them here.
219- _ => bug ! ( "invalid int to {:?} cast" , cast_ty) ,
223+ _ => span_bug ! ( self . cur_span ( ) , "invalid int to {:?} cast" , cast_ty) ,
220224 }
221225 }
222226
@@ -248,7 +252,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
248252 // float -> f64
249253 Float ( FloatTy :: F64 ) => Scalar :: from_f64 ( f. convert ( & mut false ) . value ) ,
250254 // That's it.
251- _ => bug ! ( "invalid float to {:?} cast" , dest_ty) ,
255+ _ => span_bug ! ( self . cur_span ( ) , "invalid float to {:?} cast" , dest_ty) ,
252256 }
253257 }
254258
@@ -287,7 +291,9 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
287291 self . write_immediate ( val, dest)
288292 }
289293
290- _ => bug ! ( "invalid unsizing {:?} -> {:?}" , src. layout. ty, cast_ty) ,
294+ _ => {
295+ span_bug ! ( self . cur_span( ) , "invalid unsizing {:?} -> {:?}" , src. layout. ty, cast_ty)
296+ }
291297 }
292298 }
293299
@@ -307,7 +313,12 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
307313 assert_eq ! ( def_a, def_b) ;
308314 if def_a. is_box ( ) || def_b. is_box ( ) {
309315 if !def_a. is_box ( ) || !def_b. is_box ( ) {
310- bug ! ( "invalid unsizing between {:?} -> {:?}" , src. layout. ty, cast_ty. ty) ;
316+ span_bug ! (
317+ self . cur_span( ) ,
318+ "invalid unsizing between {:?} -> {:?}" ,
319+ src. layout. ty,
320+ cast_ty. ty
321+ ) ;
311322 }
312323 return self . unsize_into_ptr (
313324 src,
@@ -335,7 +346,12 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
335346 }
336347 Ok ( ( ) )
337348 }
338- _ => bug ! ( "unsize_into: invalid conversion: {:?} -> {:?}" , src. layout, dest. layout) ,
349+ _ => span_bug ! (
350+ self . cur_span( ) ,
351+ "unsize_into: invalid conversion: {:?} -> {:?}" ,
352+ src. layout,
353+ dest. layout
354+ ) ,
339355 }
340356 }
341357}
0 commit comments