@@ -321,16 +321,20 @@ pub enum InvalidProgramInfo<'tcx> {
321
321
ReferencedConstant ,
322
322
/// Abort in case type errors are reached
323
323
TypeckError ,
324
+ /// An error occurred during layout computation.
324
325
Layout ( layout:: LayoutError < ' tcx > ) ,
325
326
}
326
327
327
328
#[ derive( Clone , RustcEncodable , RustcDecodable , HashStable ) ]
328
329
pub enum UndefinedBehaviourInfo {
330
+ /// Handle cases which for which we do not have a fixed variant
331
+ Ub ( String ) ,
329
332
Unreachable ,
330
333
}
331
334
332
335
#[ derive( Clone , RustcEncodable , RustcDecodable , HashStable ) ]
333
336
pub enum UnsupportedInfo < ' tcx > {
337
+ Unimplemented ( String ) ,
334
338
FunctionAbiMismatch ( Abi , Abi ) ,
335
339
FunctionArgMismatch ( Ty < ' tcx > , Ty < ' tcx > ) ,
336
340
FunctionRetMismatch ( Ty < ' tcx > , Ty < ' tcx > ) ,
@@ -362,12 +366,6 @@ pub enum UnsupportedInfo<'tcx> {
362
366
/// This variant is used by machines to signal their own errors that do not
363
367
/// match an existing variant.
364
368
MachineError ( String ) ,
365
-
366
- /// Not actually an interpreter error -- used to signal that execution has exited
367
- /// with the given status code. Used by Miri, but not by CTFE.
368
- Exit ( i32 ) ,
369
-
370
- Unimplemented ( String ) ,
371
369
DerefFunctionPointer ,
372
370
ExecuteMemory ,
373
371
Intrinsic ( String ) ,
@@ -416,6 +414,9 @@ pub enum InterpError<'tcx> {
416
414
/// The program exhausted the interpreter's resources (stack/heap too big,
417
415
/// execution takes too long, ..).
418
416
ResourceExhaustion ( ResourceExhaustionInfo ) ,
417
+ /// Not actually an interpreter error -- used to signal that execution has exited
418
+ /// with the given status code. Used by Miri, but not by CTFE.
419
+ Exit ( i32 ) ,
419
420
}
420
421
421
422
pub type InterpResult < ' tcx , T = ( ) > = Result < T , InterpErrorInfo < ' tcx > > ;
0 commit comments