@@ -575,19 +575,22 @@ impl<'tcx> Stable<'tcx> for mir::Terminator<'tcx> {
575
575
impl < ' tcx > Stable < ' tcx > for ty:: GenericArgs < ' tcx > {
576
576
type T = stable_mir:: ty:: GenericArgs ;
577
577
fn stable ( & self , tables : & mut Tables < ' tcx > ) -> Self :: T {
578
- use stable_mir:: ty:: { GenericArgKind , GenericArgs } ;
579
-
580
- GenericArgs (
581
- self . iter ( )
582
- . map ( |arg| match arg. unpack ( ) {
583
- ty:: GenericArgKind :: Lifetime ( region) => {
584
- GenericArgKind :: Lifetime ( opaque ( & region) )
585
- }
586
- ty:: GenericArgKind :: Type ( ty) => GenericArgKind :: Type ( tables. intern_ty ( ty) ) ,
587
- ty:: GenericArgKind :: Const ( const_) => GenericArgKind :: Const ( opaque ( & const_) ) ,
588
- } )
589
- . collect ( ) ,
590
- )
578
+ use stable_mir:: ty:: GenericArgs ;
579
+
580
+ GenericArgs ( self . iter ( ) . map ( |arg| arg. unpack ( ) . stable ( tables) ) . collect ( ) )
581
+ }
582
+ }
583
+
584
+ impl < ' tcx > Stable < ' tcx > for ty:: GenericArgKind < ' tcx > {
585
+ type T = stable_mir:: ty:: GenericArgKind ;
586
+
587
+ fn stable ( & self , tables : & mut Tables < ' tcx > ) -> Self :: T {
588
+ use stable_mir:: ty:: GenericArgKind ;
589
+ match self {
590
+ ty:: GenericArgKind :: Lifetime ( region) => GenericArgKind :: Lifetime ( opaque ( region) ) ,
591
+ ty:: GenericArgKind :: Type ( ty) => GenericArgKind :: Type ( tables. intern_ty ( * ty) ) ,
592
+ ty:: GenericArgKind :: Const ( const_) => GenericArgKind :: Const ( opaque ( & const_) ) ,
593
+ }
591
594
}
592
595
}
593
596
@@ -659,63 +662,118 @@ impl<'tcx> Stable<'tcx> for ty::FnSig<'tcx> {
659
662
}
660
663
}
661
664
665
+ impl < ' tcx > Stable < ' tcx > for ty:: BoundTyKind {
666
+ type T = stable_mir:: ty:: BoundTyKind ;
667
+
668
+ fn stable ( & self , _: & mut Tables < ' tcx > ) -> Self :: T {
669
+ use stable_mir:: ty:: BoundTyKind ;
670
+
671
+ match self {
672
+ ty:: BoundTyKind :: Anon => BoundTyKind :: Anon ,
673
+ ty:: BoundTyKind :: Param ( def_id, symbol) => {
674
+ BoundTyKind :: Param ( rustc_internal:: param_def ( * def_id) , symbol. to_string ( ) )
675
+ }
676
+ }
677
+ }
678
+ }
679
+
680
+ impl < ' tcx > Stable < ' tcx > for ty:: BoundRegionKind {
681
+ type T = stable_mir:: ty:: BoundRegionKind ;
682
+
683
+ fn stable ( & self , _: & mut Tables < ' tcx > ) -> Self :: T {
684
+ use stable_mir:: ty:: BoundRegionKind ;
685
+
686
+ match self {
687
+ ty:: BoundRegionKind :: BrAnon ( option_span) => {
688
+ BoundRegionKind :: BrAnon ( option_span. map ( |span| opaque ( & span) ) )
689
+ }
690
+ ty:: BoundRegionKind :: BrNamed ( def_id, symbol) => {
691
+ BoundRegionKind :: BrNamed ( rustc_internal:: br_named_def ( * def_id) , symbol. to_string ( ) )
692
+ }
693
+ ty:: BoundRegionKind :: BrEnv => BoundRegionKind :: BrEnv ,
694
+ }
695
+ }
696
+ }
697
+
662
698
impl < ' tcx > Stable < ' tcx > for ty:: BoundVariableKind {
663
699
type T = stable_mir:: ty:: BoundVariableKind ;
664
- fn stable ( & self , _: & mut Tables < ' tcx > ) -> Self :: T {
665
- use stable_mir:: ty:: { BoundRegionKind , BoundTyKind , BoundVariableKind } ;
700
+
701
+ fn stable ( & self , tables : & mut Tables < ' tcx > ) -> Self :: T {
702
+ use stable_mir:: ty:: BoundVariableKind ;
666
703
667
704
match self {
668
705
ty:: BoundVariableKind :: Ty ( bound_ty_kind) => {
669
- BoundVariableKind :: Ty ( match bound_ty_kind {
670
- ty:: BoundTyKind :: Anon => BoundTyKind :: Anon ,
671
- ty:: BoundTyKind :: Param ( def_id, symbol) => {
672
- BoundTyKind :: Param ( rustc_internal:: param_def ( * def_id) , symbol. to_string ( ) )
673
- }
674
- } )
706
+ BoundVariableKind :: Ty ( bound_ty_kind. stable ( tables) )
675
707
}
676
708
ty:: BoundVariableKind :: Region ( bound_region_kind) => {
677
- BoundVariableKind :: Region ( match bound_region_kind {
678
- ty:: BoundRegionKind :: BrAnon ( option_span) => {
679
- BoundRegionKind :: BrAnon ( option_span. map ( |span| opaque ( & span) ) )
680
- }
681
- ty:: BoundRegionKind :: BrNamed ( def_id, symbol) => BoundRegionKind :: BrNamed (
682
- rustc_internal:: br_named_def ( * def_id) ,
683
- symbol. to_string ( ) ,
684
- ) ,
685
- ty:: BoundRegionKind :: BrEnv => BoundRegionKind :: BrEnv ,
686
- } )
709
+ BoundVariableKind :: Region ( bound_region_kind. stable ( tables) )
687
710
}
688
711
ty:: BoundVariableKind :: Const => BoundVariableKind :: Const ,
689
712
}
690
713
}
691
714
}
692
715
716
+ impl < ' tcx > Stable < ' tcx > for ty:: IntTy {
717
+ type T = IntTy ;
718
+
719
+ fn stable ( & self , _: & mut Tables < ' tcx > ) -> Self :: T {
720
+ match self {
721
+ ty:: IntTy :: Isize => IntTy :: Isize ,
722
+ ty:: IntTy :: I8 => IntTy :: I8 ,
723
+ ty:: IntTy :: I16 => IntTy :: I16 ,
724
+ ty:: IntTy :: I32 => IntTy :: I32 ,
725
+ ty:: IntTy :: I64 => IntTy :: I64 ,
726
+ ty:: IntTy :: I128 => IntTy :: I128 ,
727
+ }
728
+ }
729
+ }
730
+
731
+ impl < ' tcx > Stable < ' tcx > for ty:: UintTy {
732
+ type T = UintTy ;
733
+
734
+ fn stable ( & self , _: & mut Tables < ' tcx > ) -> Self :: T {
735
+ match self {
736
+ ty:: UintTy :: Usize => UintTy :: Usize ,
737
+ ty:: UintTy :: U8 => UintTy :: U8 ,
738
+ ty:: UintTy :: U16 => UintTy :: U16 ,
739
+ ty:: UintTy :: U32 => UintTy :: U32 ,
740
+ ty:: UintTy :: U64 => UintTy :: U64 ,
741
+ ty:: UintTy :: U128 => UintTy :: U128 ,
742
+ }
743
+ }
744
+ }
745
+
746
+ impl < ' tcx > Stable < ' tcx > for ty:: FloatTy {
747
+ type T = FloatTy ;
748
+
749
+ fn stable ( & self , _: & mut Tables < ' tcx > ) -> Self :: T {
750
+ match self {
751
+ ty:: FloatTy :: F32 => FloatTy :: F32 ,
752
+ ty:: FloatTy :: F64 => FloatTy :: F64 ,
753
+ }
754
+ }
755
+ }
756
+
757
+ impl < ' tcx > Stable < ' tcx > for hir:: Movability {
758
+ type T = Movability ;
759
+
760
+ fn stable ( & self , _: & mut Tables < ' tcx > ) -> Self :: T {
761
+ match self {
762
+ hir:: Movability :: Static => Movability :: Static ,
763
+ hir:: Movability :: Movable => Movability :: Movable ,
764
+ }
765
+ }
766
+ }
767
+
693
768
impl < ' tcx > Stable < ' tcx > for Ty < ' tcx > {
694
769
type T = stable_mir:: ty:: TyKind ;
695
770
fn stable ( & self , tables : & mut Tables < ' tcx > ) -> Self :: T {
696
771
match self . kind ( ) {
697
772
ty:: Bool => TyKind :: RigidTy ( RigidTy :: Bool ) ,
698
773
ty:: Char => TyKind :: RigidTy ( RigidTy :: Char ) ,
699
- ty:: Int ( int_ty) => match int_ty {
700
- ty:: IntTy :: Isize => TyKind :: RigidTy ( RigidTy :: Int ( IntTy :: Isize ) ) ,
701
- ty:: IntTy :: I8 => TyKind :: RigidTy ( RigidTy :: Int ( IntTy :: I8 ) ) ,
702
- ty:: IntTy :: I16 => TyKind :: RigidTy ( RigidTy :: Int ( IntTy :: I16 ) ) ,
703
- ty:: IntTy :: I32 => TyKind :: RigidTy ( RigidTy :: Int ( IntTy :: I32 ) ) ,
704
- ty:: IntTy :: I64 => TyKind :: RigidTy ( RigidTy :: Int ( IntTy :: I64 ) ) ,
705
- ty:: IntTy :: I128 => TyKind :: RigidTy ( RigidTy :: Int ( IntTy :: I128 ) ) ,
706
- } ,
707
- ty:: Uint ( uint_ty) => match uint_ty {
708
- ty:: UintTy :: Usize => TyKind :: RigidTy ( RigidTy :: Uint ( UintTy :: Usize ) ) ,
709
- ty:: UintTy :: U8 => TyKind :: RigidTy ( RigidTy :: Uint ( UintTy :: U8 ) ) ,
710
- ty:: UintTy :: U16 => TyKind :: RigidTy ( RigidTy :: Uint ( UintTy :: U16 ) ) ,
711
- ty:: UintTy :: U32 => TyKind :: RigidTy ( RigidTy :: Uint ( UintTy :: U32 ) ) ,
712
- ty:: UintTy :: U64 => TyKind :: RigidTy ( RigidTy :: Uint ( UintTy :: U64 ) ) ,
713
- ty:: UintTy :: U128 => TyKind :: RigidTy ( RigidTy :: Uint ( UintTy :: U128 ) ) ,
714
- } ,
715
- ty:: Float ( float_ty) => match float_ty {
716
- ty:: FloatTy :: F32 => TyKind :: RigidTy ( RigidTy :: Float ( FloatTy :: F32 ) ) ,
717
- ty:: FloatTy :: F64 => TyKind :: RigidTy ( RigidTy :: Float ( FloatTy :: F64 ) ) ,
718
- } ,
774
+ ty:: Int ( int_ty) => TyKind :: RigidTy ( RigidTy :: Int ( int_ty. stable ( tables) ) ) ,
775
+ ty:: Uint ( uint_ty) => TyKind :: RigidTy ( RigidTy :: Uint ( uint_ty. stable ( tables) ) ) ,
776
+ ty:: Float ( float_ty) => TyKind :: RigidTy ( RigidTy :: Float ( float_ty. stable ( tables) ) ) ,
719
777
ty:: Adt ( adt_def, generic_args) => TyKind :: RigidTy ( RigidTy :: Adt (
720
778
rustc_internal:: adt_def ( adt_def. did ( ) ) ,
721
779
generic_args. stable ( tables) ,
@@ -758,10 +816,7 @@ impl<'tcx> Stable<'tcx> for Ty<'tcx> {
758
816
ty:: Generator ( def_id, generic_args, movability) => TyKind :: RigidTy ( RigidTy :: Generator (
759
817
rustc_internal:: generator_def ( * def_id) ,
760
818
generic_args. stable ( tables) ,
761
- match movability {
762
- hir:: Movability :: Static => Movability :: Static ,
763
- hir:: Movability :: Movable => Movability :: Movable ,
764
- } ,
819
+ movability. stable ( tables) ,
765
820
) ) ,
766
821
ty:: Never => TyKind :: RigidTy ( RigidTy :: Never ) ,
767
822
ty:: Tuple ( fields) => TyKind :: RigidTy ( RigidTy :: Tuple (
0 commit comments