@@ -137,8 +137,11 @@ fn smir_crate(tcx: TyCtxt<'_>, crate_num: CrateNum) -> stable_mir::Crate {
137137 stable_mir:: Crate { id : crate_num. into ( ) , name : crate_name, is_local }
138138}
139139
140- pub trait Stable {
140+ /// Trait used to convert between an internal MIR type to a Stable MIR type.
141+ pub ( crate ) trait Stable {
142+ /// The stable representation of the type implementing Stable.
141143 type T ;
144+ /// Converts an object to the equivalent Stable MIR representation.
142145 fn stable ( & self ) -> Self :: T ;
143146}
144147
@@ -229,34 +232,38 @@ impl Stable for mir::UnwindAction {
229232 }
230233}
231234
232- fn rustc_assert_msg_to_msg < ' tcx > (
233- assert_message : & rustc_middle:: mir:: AssertMessage < ' tcx > ,
234- ) -> stable_mir:: mir:: AssertMessage {
235- use rustc_middle:: mir:: AssertKind ;
236- match assert_message {
237- AssertKind :: BoundsCheck { len, index } => {
238- stable_mir:: mir:: AssertMessage :: BoundsCheck { len : len. stable ( ) , index : index. stable ( ) }
239- }
240- AssertKind :: Overflow ( bin_op, op1, op2) => {
241- stable_mir:: mir:: AssertMessage :: Overflow ( bin_op. stable ( ) , op1. stable ( ) , op2. stable ( ) )
242- }
243- AssertKind :: OverflowNeg ( op) => stable_mir:: mir:: AssertMessage :: OverflowNeg ( op. stable ( ) ) ,
244- AssertKind :: DivisionByZero ( op) => {
245- stable_mir:: mir:: AssertMessage :: DivisionByZero ( op. stable ( ) )
246- }
247- AssertKind :: RemainderByZero ( op) => {
248- stable_mir:: mir:: AssertMessage :: RemainderByZero ( op. stable ( ) )
249- }
250- AssertKind :: ResumedAfterReturn ( generator) => {
251- stable_mir:: mir:: AssertMessage :: ResumedAfterReturn ( generator. stable ( ) )
252- }
253- AssertKind :: ResumedAfterPanic ( generator) => {
254- stable_mir:: mir:: AssertMessage :: ResumedAfterPanic ( generator. stable ( ) )
255- }
256- AssertKind :: MisalignedPointerDereference { required, found } => {
257- stable_mir:: mir:: AssertMessage :: MisalignedPointerDereference {
258- required : required. stable ( ) ,
259- found : found. stable ( ) ,
235+ impl < ' tcx > Stable for mir:: AssertMessage < ' tcx > {
236+ type T = stable_mir:: mir:: AssertMessage ;
237+ fn stable ( & self ) -> Self :: T {
238+ use rustc_middle:: mir:: AssertKind ;
239+ match self {
240+ AssertKind :: BoundsCheck { len, index } => stable_mir:: mir:: AssertMessage :: BoundsCheck {
241+ len : len. stable ( ) ,
242+ index : index. stable ( ) ,
243+ } ,
244+ AssertKind :: Overflow ( bin_op, op1, op2) => stable_mir:: mir:: AssertMessage :: Overflow (
245+ bin_op. stable ( ) ,
246+ op1. stable ( ) ,
247+ op2. stable ( ) ,
248+ ) ,
249+ AssertKind :: OverflowNeg ( op) => stable_mir:: mir:: AssertMessage :: OverflowNeg ( op. stable ( ) ) ,
250+ AssertKind :: DivisionByZero ( op) => {
251+ stable_mir:: mir:: AssertMessage :: DivisionByZero ( op. stable ( ) )
252+ }
253+ AssertKind :: RemainderByZero ( op) => {
254+ stable_mir:: mir:: AssertMessage :: RemainderByZero ( op. stable ( ) )
255+ }
256+ AssertKind :: ResumedAfterReturn ( generator) => {
257+ stable_mir:: mir:: AssertMessage :: ResumedAfterReturn ( generator. stable ( ) )
258+ }
259+ AssertKind :: ResumedAfterPanic ( generator) => {
260+ stable_mir:: mir:: AssertMessage :: ResumedAfterPanic ( generator. stable ( ) )
261+ }
262+ AssertKind :: MisalignedPointerDereference { required, found } => {
263+ stable_mir:: mir:: AssertMessage :: MisalignedPointerDereference {
264+ required : required. stable ( ) ,
265+ found : found. stable ( ) ,
266+ }
260267 }
261268 }
262269 }
@@ -381,7 +388,7 @@ impl<'tcx> Stable for mir::Terminator<'tcx> {
381388 Assert { cond, expected, msg, target, unwind } => Terminator :: Assert {
382389 cond : cond. stable ( ) ,
383390 expected : * expected,
384- msg : rustc_assert_msg_to_msg ( msg) ,
391+ msg : msg. stable ( ) ,
385392 target : target. as_usize ( ) ,
386393 unwind : unwind. stable ( ) ,
387394 } ,
0 commit comments