@@ -611,7 +611,7 @@ impl TypeAliasPart {
611
611
. impl_
612
612
. values ( )
613
613
. flat_map ( |AliasedTypeImpl { impl_, type_aliases } | {
614
- let mut ret = Vec :: new ( ) ;
614
+ let mut ret: Vec < AliasSerializableImpl > = Vec :: new ( ) ;
615
615
let trait_ = impl_
616
616
. inner_impl ( )
617
617
. trait_
@@ -623,42 +623,43 @@ impl TypeAliasPart {
623
623
for & ( type_alias_fqp, type_alias_item) in type_aliases {
624
624
cx. id_map . borrow_mut ( ) . clear ( ) ;
625
625
cx. deref_id_map . borrow_mut ( ) . clear ( ) ;
626
- let target_did = impl_
627
- . inner_impl ( )
628
- . trait_
629
- . as_ref ( )
630
- . map ( |trait_| trait_. def_id ( ) )
631
- . or_else ( || impl_. inner_impl ( ) . for_ . def_id ( & cx. shared . cache ) ) ;
632
- let provided_methods;
633
- let assoc_link = if let Some ( target_did) = target_did {
634
- provided_methods = impl_. inner_impl ( ) . provided_trait_methods ( cx. tcx ( ) ) ;
635
- AssocItemLink :: GotoSource ( ItemId :: DefId ( target_did) , & provided_methods)
636
- } else {
637
- AssocItemLink :: Anchor ( None )
638
- } ;
639
- let text = super :: render_impl (
640
- cx,
641
- impl_,
642
- type_alias_item,
643
- assoc_link,
644
- RenderMode :: Normal ,
645
- None ,
646
- & [ ] ,
647
- ImplRenderingParameters {
648
- show_def_docs : true ,
649
- show_default_items : true ,
650
- show_non_assoc_items : true ,
651
- toggle_open_by_default : true ,
652
- } ,
653
- )
654
- . to_string ( ) ;
655
626
let type_alias_fqp = ( * type_alias_fqp) . iter ( ) . join ( "::" ) ;
656
- if Some ( & text) == ret. last ( ) . map ( |s : & AliasSerializableImpl | & s. text ) {
657
- ret. last_mut ( )
658
- . expect ( "already established that ret.last() is Some()" )
659
- . aliases
660
- . push ( type_alias_fqp) ;
627
+ if let Some ( last) = ret. last_mut ( ) {
628
+ last. aliases . push ( type_alias_fqp) ;
661
629
} else {
630
+ let target_did = impl_
631
+ . inner_impl ( )
632
+ . trait_
633
+ . as_ref ( )
634
+ . map ( |trait_| trait_. def_id ( ) )
635
+ . or_else ( || impl_. inner_impl ( ) . for_ . def_id ( & cx. shared . cache ) ) ;
636
+ let provided_methods;
637
+ let assoc_link = if let Some ( target_did) = target_did {
638
+ provided_methods =
639
+ impl_. inner_impl ( ) . provided_trait_methods ( cx. tcx ( ) ) ;
640
+ AssocItemLink :: GotoSource (
641
+ ItemId :: DefId ( target_did) ,
642
+ & provided_methods,
643
+ )
644
+ } else {
645
+ AssocItemLink :: Anchor ( None )
646
+ } ;
647
+ let text = super :: render_impl (
648
+ cx,
649
+ impl_,
650
+ type_alias_item,
651
+ assoc_link,
652
+ RenderMode :: Normal ,
653
+ None ,
654
+ & [ ] ,
655
+ ImplRenderingParameters {
656
+ show_def_docs : true ,
657
+ show_default_items : true ,
658
+ show_non_assoc_items : true ,
659
+ toggle_open_by_default : true ,
660
+ } ,
661
+ )
662
+ . to_string ( ) ;
662
663
ret. push ( AliasSerializableImpl {
663
664
text,
664
665
trait_ : trait_. clone ( ) ,
0 commit comments