@@ -718,18 +718,17 @@ pub(super) fn definition(
718
718
}
719
719
_ => return None ,
720
720
} ;
721
- let rendered_drop_glue = match drop_info. drop_glue {
722
- DropGlue :: None => "does not contain types with destructors (drop glue)" ,
723
- DropGlue :: DependOnParams => {
724
- "may contain types with destructors (drop glue) depending on type parameters"
721
+ let rendered_drop_glue = if drop_info. has_dtor == Some ( true ) {
722
+ "impl Drop"
723
+ } else {
724
+ match drop_info. drop_glue {
725
+ DropGlue :: HasDropGlue => "needs Drop" ,
726
+ DropGlue :: None => "no Drop" ,
727
+ DropGlue :: DependOnParams => "type param may need Drop" ,
725
728
}
726
- DropGlue :: HasDropGlue => "contain types with destructors (drop glue)" ,
727
729
} ;
728
- Some ( match drop_info. has_dtor {
729
- Some ( true ) => format ! ( "{}; has a destructor" , rendered_drop_glue) ,
730
- Some ( false ) => format ! ( "{}; doesn't have a destructor" , rendered_drop_glue) ,
731
- None => rendered_drop_glue. to_owned ( ) ,
732
- } )
730
+
731
+ Some ( rendered_drop_glue. to_owned ( ) )
733
732
} ;
734
733
735
734
let dyn_compatibility_info = || match def {
@@ -761,15 +760,18 @@ pub(super) fn definition(
761
760
if let Some ( layout_info) = layout_info ( ) {
762
761
extra. push_str ( "\n ___\n " ) ;
763
762
extra. push_str ( & layout_info) ;
763
+ if let Some ( drop_info) = drop_info ( ) {
764
+ extra. push_str ( ", " ) ;
765
+ extra. push_str ( & drop_info)
766
+ }
767
+ } else if let Some ( drop_info) = drop_info ( ) {
768
+ extra. push_str ( "\n ___\n " ) ;
769
+ extra. push_str ( & drop_info) ;
764
770
}
765
771
if let Some ( dyn_compatibility_info) = dyn_compatibility_info ( ) {
766
772
extra. push_str ( "\n ___\n " ) ;
767
773
extra. push_str ( & dyn_compatibility_info) ;
768
774
}
769
- if let Some ( drop_info) = drop_info ( ) {
770
- extra. push_str ( "\n ___\n " ) ;
771
- extra. push_str ( & drop_info) ;
772
- }
773
775
}
774
776
let mut desc = String :: new ( ) ;
775
777
desc. push_str ( & label) ;
0 commit comments