@@ -13,7 +13,7 @@ use crate::mir::mono::StaticDef;
1313use  crate :: target:: MachineInfo ; 
1414use  crate :: { Filename ,  IndexedVal ,  Opaque ,  ThreadLocalIndex } ; 
1515
16- #[ derive( Copy ,  Clone ,  Eq ,  PartialEq ,  Hash ,   Serialize ) ]  
16+ #[ derive( Copy ,  Clone ,  Eq ,  PartialEq ,  Hash ) ]  
1717pub  struct  Ty ( usize ,  ThreadLocalIndex ) ; 
1818
1919impl  Debug  for  Ty  { 
@@ -151,7 +151,7 @@ pub enum TyConstKind {
151151 ZSTValue ( Ty ) , 
152152} 
153153
154- #[ derive( Copy ,  Clone ,  Debug ,  Eq ,  PartialEq ,  Hash ,   Serialize ) ]  
154+ #[ derive( Copy ,  Clone ,  Debug ,  Eq ,  PartialEq ,  Hash ) ]  
155155pub  struct  TyConstId ( usize ,  ThreadLocalIndex ) ; 
156156
157157/// Represents a constant in MIR 
@@ -212,7 +212,7 @@ impl MirConst {
212212 } 
213213} 
214214
215- #[ derive( Clone ,  Copy ,  Debug ,  PartialEq ,  Eq ,  Hash ,   Serialize ) ]  
215+ #[ derive( Clone ,  Copy ,  Debug ,  PartialEq ,  Eq ,  Hash ) ]  
216216pub  struct  MirConstId ( usize ,  ThreadLocalIndex ) ; 
217217
218218type  Ident  = Opaque ; 
@@ -255,7 +255,7 @@ pub struct Placeholder<T> {
255255 pub  bound :  T , 
256256} 
257257
258- #[ derive( Clone ,  Copy ,  PartialEq ,  Eq ,  Hash ,   Serialize ) ]  
258+ #[ derive( Clone ,  Copy ,  PartialEq ,  Eq ,  Hash ) ]  
259259pub  struct  Span ( usize ,  ThreadLocalIndex ) ; 
260260
261261impl  Debug  for  Span  { 
@@ -1566,9 +1566,23 @@ macro_rules! index_impl {
15661566 self . 0 
15671567 } 
15681568 } 
1569+  $crate:: ty:: serialize_index_impl!( $name) ; 
1570+  } ; 
1571+ } 
1572+ macro_rules!  serialize_index_impl { 
1573+  ( $name: ident)  => { 
1574+  impl  :: serde:: Serialize  for  $name { 
1575+  fn  serialize<S >( & self ,  serializer:  S )  -> Result <S :: Ok ,  S :: Error >
1576+  where 
1577+  S :  :: serde:: Serializer , 
1578+  { 
1579+  let  n:  usize  = self . 0 ;  // Make sure we're serializing an int. 
1580+  :: serde:: Serialize :: serialize( & n,  serializer) 
1581+  } 
1582+  } 
15691583 } ; 
15701584} 
1571- pub ( crate )  use  index_impl; 
1585+ pub ( crate )  use  { index_impl,  serialize_index_impl } ; 
15721586
15731587index_impl ! ( TyConstId ) ; 
15741588index_impl ! ( MirConstId ) ; 
@@ -1588,7 +1602,7 @@ index_impl!(Span);
15881602/// `a` is in the variant with the `VariantIdx` of `0`, 
15891603/// `c` is in the variant with the `VariantIdx` of `1`, and 
15901604/// `g` is in the variant with the `VariantIdx` of `0`. 
1591- #[ derive( Clone ,  Copy ,  Debug ,  PartialEq ,  Eq ,  Hash ,   Serialize ) ]  
1605+ #[ derive( Clone ,  Copy ,  Debug ,  PartialEq ,  Eq ,  Hash ) ]  
15921606pub  struct  VariantIdx ( usize ,  ThreadLocalIndex ) ; 
15931607
15941608index_impl ! ( VariantIdx ) ; 
0 commit comments