@@ -7,7 +7,7 @@ use syntax::source_map::Span;
77use rustc_target:: spec:: abi:: Abi ;
88
99use super :: {
10- InterpResult , PointerArithmetic , InterpError , Scalar , PanicMessage ,
10+ InterpResult , PointerArithmetic , InterpError , Scalar ,
1111 InterpCx , Machine , Immediate , OpTy , ImmTy , PlaceTy , MPlaceTy , StackPopCleanup , FnVal ,
1212} ;
1313
@@ -135,28 +135,31 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
135135 self . goto_block ( Some ( target) ) ?;
136136 } else {
137137 // Compute error message
138- use rustc:: mir:: interpret:: InterpError :: * ;
139- return match * msg {
140- Panic ( PanicMessage :: BoundsCheck { ref len, ref index } ) => {
138+ use rustc:: mir:: interpret:: PanicMessage :: * ;
139+ return match msg {
140+ BoundsCheck { ref len, ref index } => {
141141 let len = self . read_immediate ( self . eval_operand ( len, None ) ?)
142142 . expect ( "can't eval len" ) . to_scalar ( ) ?
143143 . to_bits ( self . memory ( ) . pointer_size ( ) ) ? as u64 ;
144144 let index = self . read_immediate ( self . eval_operand ( index, None ) ?)
145145 . expect ( "can't eval index" ) . to_scalar ( ) ?
146146 . to_bits ( self . memory ( ) . pointer_size ( ) ) ? as u64 ;
147- err ! ( Panic ( PanicMessage :: BoundsCheck { len, index } ) )
147+ err ! ( Panic ( BoundsCheck { len, index } ) )
148148 }
149- Panic ( PanicMessage :: Overflow ( op) ) =>
150- Err ( Panic ( PanicMessage :: Overflow ( op) ) . into ( ) ) ,
151- Panic ( PanicMessage :: OverflowNeg ) =>
152- Err ( Panic ( PanicMessage :: OverflowNeg ) . into ( ) ) ,
153- Panic ( PanicMessage :: DivisionByZero ) =>
154- Err ( Panic ( PanicMessage :: DivisionByZero ) . into ( ) ) ,
155- Panic ( PanicMessage :: RemainderByZero ) =>
156- Err ( Panic ( PanicMessage :: RemainderByZero ) . into ( ) ) ,
157- GeneratorResumedAfterReturn |
158- GeneratorResumedAfterPanic => unimplemented ! ( ) ,
159- _ => bug ! ( ) ,
149+ Overflow ( op) =>
150+ err ! ( Panic ( Overflow ( * op) ) ) ,
151+ OverflowNeg =>
152+ err ! ( Panic ( OverflowNeg ) ) ,
153+ DivisionByZero =>
154+ err ! ( Panic ( DivisionByZero ) ) ,
155+ RemainderByZero =>
156+ err ! ( Panic ( RemainderByZero ) ) ,
157+ GeneratorResumedAfterReturn =>
158+ err ! ( Panic ( GeneratorResumedAfterReturn ) ) ,
159+ GeneratorResumedAfterPanic =>
160+ err ! ( Panic ( GeneratorResumedAfterPanic ) ) ,
161+ Panic { .. } =>
162+ bug ! ( "`Panic` variant cannot occur in MIR" ) ,
160163 } ;
161164 }
162165 }
0 commit comments