@@ -1949,40 +1949,52 @@ pub(crate) fn clean_field_with_def_id(
19491949}
19501950
19511951pub ( crate ) fn clean_variant_def < ' tcx > ( variant : & ty:: VariantDef , cx : & mut DocContext < ' tcx > ) -> Item {
1952+ let discriminant = match variant. discr {
1953+ ty:: VariantDiscr :: Explicit ( def_id) => Some ( Discriminant { expr : None , value : def_id } ) ,
1954+ ty:: VariantDiscr :: Relative ( _) => None ,
1955+ } ;
1956+
19521957 let kind = match variant. ctor_kind ( ) {
1953- Some ( CtorKind :: Const ) => Variant :: CLike ( match variant. discr {
1954- ty:: VariantDiscr :: Explicit ( def_id) => Some ( Discriminant { expr : None , value : def_id } ) ,
1955- ty:: VariantDiscr :: Relative ( _) => None ,
1956- } ) ,
1957- Some ( CtorKind :: Fn ) => Variant :: Tuple (
1958+ Some ( CtorKind :: Const ) => VariantKind :: CLike ,
1959+ Some ( CtorKind :: Fn ) => VariantKind :: Tuple (
19581960 variant. fields . iter ( ) . map ( |field| clean_middle_field ( field, cx) ) . collect ( ) ,
19591961 ) ,
1960- None => Variant :: Struct ( VariantStruct {
1962+ None => VariantKind :: Struct ( VariantStruct {
19611963 ctor_kind : None ,
19621964 fields : variant. fields . iter ( ) . map ( |field| clean_middle_field ( field, cx) ) . collect ( ) ,
19631965 } ) ,
19641966 } ;
1965- Item :: from_def_id_and_parts ( variant. def_id , Some ( variant. name ) , VariantItem ( kind) , cx)
1967+
1968+ Item :: from_def_id_and_parts (
1969+ variant. def_id ,
1970+ Some ( variant. name ) ,
1971+ VariantItem ( Variant { kind, discriminant } ) ,
1972+ cx,
1973+ )
19661974}
19671975
19681976fn clean_variant_data < ' tcx > (
19691977 variant : & hir:: VariantData < ' tcx > ,
19701978 disr_expr : & Option < hir:: AnonConst > ,
19711979 cx : & mut DocContext < ' tcx > ,
19721980) -> Variant {
1973- match variant {
1974- hir:: VariantData :: Struct ( ..) => Variant :: Struct ( VariantStruct {
1981+ let discriminant = disr_expr. map ( |disr| Discriminant {
1982+ expr : Some ( disr. body ) ,
1983+ value : cx. tcx . hir ( ) . local_def_id ( disr. hir_id ) . to_def_id ( ) ,
1984+ } ) ;
1985+
1986+ let kind = match variant {
1987+ hir:: VariantData :: Struct ( ..) => VariantKind :: Struct ( VariantStruct {
19751988 ctor_kind : None ,
19761989 fields : variant. fields ( ) . iter ( ) . map ( |x| clean_field ( x, cx) ) . collect ( ) ,
19771990 } ) ,
19781991 hir:: VariantData :: Tuple ( ..) => {
1979- Variant :: Tuple ( variant. fields ( ) . iter ( ) . map ( |x| clean_field ( x, cx) ) . collect ( ) )
1992+ VariantKind :: Tuple ( variant. fields ( ) . iter ( ) . map ( |x| clean_field ( x, cx) ) . collect ( ) )
19801993 }
1981- hir:: VariantData :: Unit ( ..) => Variant :: CLike ( disr_expr. map ( |disr| Discriminant {
1982- expr : Some ( disr. body ) ,
1983- value : cx. tcx . hir ( ) . local_def_id ( disr. hir_id ) . to_def_id ( ) ,
1984- } ) ) ,
1985- }
1994+ hir:: VariantData :: Unit ( ..) => VariantKind :: CLike ,
1995+ } ;
1996+
1997+ Variant { discriminant, kind }
19861998}
19871999
19882000fn clean_path < ' tcx > ( path : & hir:: Path < ' tcx > , cx : & mut DocContext < ' tcx > ) -> Path {
0 commit comments