@@ -556,23 +556,23 @@ impl<'b, 'a: 'b> FmtVisitor<'a> {
556
556
self . skip_context = skip_context_saved;
557
557
}
558
558
559
- pub ( crate ) fn visit_trait_item ( & mut self , ti : & ast:: TraitItem ) {
559
+ pub ( crate ) fn visit_trait_item ( & mut self , ti : & ast:: AssocItem ) {
560
560
skip_out_of_file_lines_range_visitor ! ( self , ti. span) ;
561
561
562
562
if self . visit_attrs ( & ti. attrs , ast:: AttrStyle :: Outer ) {
563
- self . push_skipped_with_span ( ti. attrs . as_slice ( ) , ti. span ( ) , ti. span ( ) ) ;
563
+ self . push_skipped_with_span ( ti. attrs . as_slice ( ) , ti. span , ti. span ) ;
564
564
return ;
565
565
}
566
566
567
567
match ti. kind {
568
- ast:: TraitItemKind :: Const ( ..) => self . visit_static ( & StaticParts :: from_trait_item ( ti) ) ,
569
- ast:: TraitItemKind :: Method ( ref sig, None ) => {
568
+ ast:: AssocItemKind :: Const ( ..) => self . visit_static ( & StaticParts :: from_trait_item ( ti) ) ,
569
+ ast:: AssocItemKind :: Fn ( ref sig, None ) => {
570
570
let indent = self . block_indent ;
571
571
let rewrite =
572
572
self . rewrite_required_fn ( indent, ti. ident , sig, & ti. generics , ti. span ) ;
573
573
self . push_rewrite ( ti. span , rewrite) ;
574
574
}
575
- ast:: TraitItemKind :: Method ( ref sig, Some ( ref body) ) => {
575
+ ast:: AssocItemKind :: Fn ( ref sig, Some ( ref body) ) => {
576
576
let inner_attrs = inner_attributes ( & ti. attrs ) ;
577
577
self . visit_fn (
578
578
visit:: FnKind :: Method ( ti. ident , sig, None , body) ,
@@ -583,7 +583,7 @@ impl<'b, 'a: 'b> FmtVisitor<'a> {
583
583
Some ( & inner_attrs) ,
584
584
) ;
585
585
}
586
- ast:: TraitItemKind :: Type ( ref generic_bounds, ref type_default) => {
586
+ ast:: AssocItemKind :: TyAlias ( ref generic_bounds, ref type_default) => {
587
587
let rewrite = rewrite_associated_type (
588
588
ti. ident ,
589
589
type_default. as_ref ( ) ,
@@ -594,55 +594,62 @@ impl<'b, 'a: 'b> FmtVisitor<'a> {
594
594
) ;
595
595
self . push_rewrite ( ti. span , rewrite) ;
596
596
}
597
- ast:: TraitItemKind :: Macro ( ref mac) => {
597
+ ast:: AssocItemKind :: Macro ( ref mac) => {
598
598
self . visit_mac ( mac, Some ( ti. ident ) , MacroPosition :: Item ) ;
599
599
}
600
600
}
601
601
}
602
602
603
- pub ( crate ) fn visit_impl_item ( & mut self , ii : & ast:: ImplItem ) {
603
+ pub ( crate ) fn visit_impl_item ( & mut self , ii : & ast:: AssocItem ) {
604
604
skip_out_of_file_lines_range_visitor ! ( self , ii. span) ;
605
605
606
606
if self . visit_attrs ( & ii. attrs , ast:: AttrStyle :: Outer ) {
607
- self . push_skipped_with_span ( ii. attrs . as_slice ( ) , ii. span ( ) , ii. span ( ) ) ;
607
+ self . push_skipped_with_span ( ii. attrs . as_slice ( ) , ii. span , ii. span ) ;
608
608
return ;
609
609
}
610
610
611
611
match ii. kind {
612
- ast:: ImplItemKind :: Method ( ref sig, ref body) => {
612
+ ast:: AssocItemKind :: Fn ( ref sig, Some ( ref body) ) => {
613
613
let inner_attrs = inner_attributes ( & ii. attrs ) ;
614
614
self . visit_fn (
615
- visit:: FnKind :: Method ( ii. ident , sig, Some ( & ii. vis ) , body) ,
615
+ visit:: FnKind :: Fn ( ii. ident , sig, Some ( & ii. vis ) , body) ,
616
616
& ii. generics ,
617
617
& sig. decl ,
618
618
ii. span ,
619
619
ii. defaultness ,
620
620
Some ( & inner_attrs) ,
621
621
) ;
622
622
}
623
- ast:: ImplItemKind :: Const ( ..) => self . visit_static ( & StaticParts :: from_impl_item ( ii) ) ,
624
- ast:: ImplItemKind :: TyAlias ( ref ty) => {
625
- let rewrite = rewrite_associated_impl_type (
626
- ii. ident ,
627
- ii. defaultness ,
628
- Some ( ty) ,
629
- & ii. generics ,
630
- & self . get_context ( ) ,
631
- self . block_indent ,
632
- ) ;
633
- self . push_rewrite ( ii. span , rewrite) ;
634
- }
635
- ast:: ImplItemKind :: OpaqueTy ( ref generic_bounds) => {
636
- let rewrite = rewrite_opaque_impl_type (
637
- & self . get_context ( ) ,
638
- ii. ident ,
639
- & ii. generics ,
640
- generic_bounds,
641
- self . block_indent ,
642
- ) ;
623
+ ast:: AssocItemKind :: Const ( ..) => self . visit_static ( & StaticParts :: from_impl_item ( ii) ) ,
624
+ ast:: AssocItemKind :: TyAlias ( ref generic_bounds, ref ty) => {
625
+ let rewrite_associated = || {
626
+ rewrite_associated_impl_type (
627
+ ii. ident ,
628
+ ii. defaultness ,
629
+ ty. as_ref ( ) ,
630
+ & ii. generics ,
631
+ & self . get_context ( ) ,
632
+ self . block_indent ,
633
+ )
634
+ } ;
635
+ let rewrite = match ty {
636
+ None => rewrite_associated ( ) ,
637
+ Some ( ty) => match ty. kind . opaque_top_hack ( ) {
638
+ Some ( _) => {
639
+ rewrite_opaque_impl_type (
640
+ & self . get_context ( ) ,
641
+ ii. ident ,
642
+ & ii. generics ,
643
+ generic_bounds,
644
+ self . block_indent ,
645
+ )
646
+ } ,
647
+ None => rewrite_associated ( )
648
+ }
649
+ } ;
643
650
self . push_rewrite ( ii. span , rewrite) ;
644
651
}
645
- ast:: ImplItemKind :: Macro ( ref mac) => {
652
+ ast:: AssocItemKind :: Macro ( ref mac) => {
646
653
self . visit_mac ( mac, Some ( ii. ident ) , MacroPosition :: Item ) ;
647
654
}
648
655
}
0 commit comments