@@ -53,7 +53,6 @@ macro_rules! p {
5353} 
5454macro_rules!  define_scoped_cx { 
5555    ( $cx: ident)  => { 
56-         #[ allow( unused_macros) ] 
5756        macro_rules! scoped_cx { 
5857            ( )  => { 
5958                $cx
@@ -408,8 +407,6 @@ pub trait PrettyPrinter<'tcx>: Printer<'tcx> + fmt::Write {
408407        def_id :  DefId , 
409408        callers :  & mut  Vec < DefId > , 
410409    )  -> Result < bool ,  PrintError >  { 
411-         define_scoped_cx ! ( self ) ; 
412- 
413410        debug ! ( "try_print_visible_def_path: def_id={:?}" ,  def_id) ; 
414411
415412        // If `def_id` is a direct or injected extern crate, return the 
@@ -1868,8 +1865,6 @@ impl<'tcx> Printer<'tcx> for FmtPrinter<'_, 'tcx> {
18681865        def_id :  DefId , 
18691866        args :  & ' tcx  [ GenericArg < ' tcx > ] , 
18701867    )  -> Result < ( ) ,  PrintError >  { 
1871-         define_scoped_cx ! ( self ) ; 
1872- 
18731868        if  args. is_empty ( )  { 
18741869            match  self . try_print_trimmed_def_path ( def_id) ? { 
18751870                true  => return  Ok ( ( ) ) , 
@@ -2401,8 +2396,6 @@ impl<'tcx> FmtPrinter<'_, 'tcx> {
24012396            let  _ = write ! ( cx,  "{cont}" ) ; 
24022397        } ; 
24032398
2404-         define_scoped_cx ! ( self ) ; 
2405- 
24062399        let  possible_names = ( 'a' ..='z' ) . rev ( ) . map ( |s| Symbol :: intern ( & format ! ( "'{s}" ) ) ) ; 
24072400
24082401        let  mut  available_names = possible_names
@@ -2630,46 +2623,6 @@ where
26302623    } 
26312624} 
26322625
2633- macro_rules!  forward_display_to_print { 
2634-     ( $( $ty: ty) ,+)  => { 
2635-         // Some of the $ty arguments may not actually use 'tcx 
2636-         $( #[ allow( unused_lifetimes) ]  impl <' tcx> fmt:: Display  for  $ty { 
2637-             fn  fmt( & self ,  f:  & mut  fmt:: Formatter <' _>)  -> fmt:: Result  { 
2638-                 ty:: tls:: with( |tcx| { 
2639-                     let  mut  cx = FmtPrinter :: new( tcx,  Namespace :: TypeNS ) ; 
2640-                     tcx. lift( * self ) 
2641-                         . expect( "could not lift for printing" ) 
2642-                         . print( & mut  cx) ?; 
2643-                     f. write_str( & cx. into_buffer( ) ) ?; 
2644-                     Ok ( ( ) ) 
2645-                 } ) 
2646-             } 
2647-         } ) +
2648-     } ; 
2649- } 
2650- 
2651- macro_rules!  define_print_and_forward_display { 
2652-     ( ( $self: ident,  $cx: ident) :  $( $ty: ty $print: block) +)  => { 
2653-         define_print!( ( $self,  $cx) :  $( $ty $print) * ) ; 
2654-         forward_display_to_print!( $( $ty) ,+) ; 
2655-     } ; 
2656- } 
2657- 
2658- macro_rules!  define_print { 
2659-     ( ( $self: ident,  $cx: ident) :  $( $ty: ty $print: block) +)  => { 
2660-         $( impl <' tcx,  P :  PrettyPrinter <' tcx>> Print <' tcx,  P > for  $ty { 
2661-             fn  print( & $self,  $cx:  & mut  P )  -> Result <( ) ,  PrintError > { 
2662-                 #[ allow( unused_mut) ] 
2663-                 let  mut  $cx = $cx; 
2664-                 define_scoped_cx!( $cx) ; 
2665-                 let  _:  ( )  = $print; 
2666-                 #[ allow( unreachable_code) ] 
2667-                 Ok ( ( ) ) 
2668-             } 
2669-         } ) +
2670-     } ; 
2671- } 
2672- 
26732626/// Wrapper type for `ty::TraitRef` which opts-in to pretty printing only 
26742627/// the trait path. That is, it will print `Trait<U>` instead of 
26752628/// `<T as Trait<U>>`. 
@@ -2744,6 +2697,43 @@ pub struct PrintClosureAsImpl<'tcx> {
27442697    pub  closure :  ty:: ClosureArgs < ' tcx > , 
27452698} 
27462699
2700+ macro_rules!  forward_display_to_print { 
2701+     ( $( $ty: ty) ,+)  => { 
2702+         // Some of the $ty arguments may not actually use 'tcx 
2703+         $( #[ allow( unused_lifetimes) ]  impl <' tcx> fmt:: Display  for  $ty { 
2704+             fn  fmt( & self ,  f:  & mut  fmt:: Formatter <' _>)  -> fmt:: Result  { 
2705+                 ty:: tls:: with( |tcx| { 
2706+                     let  mut  cx = FmtPrinter :: new( tcx,  Namespace :: TypeNS ) ; 
2707+                     tcx. lift( * self ) 
2708+                         . expect( "could not lift for printing" ) 
2709+                         . print( & mut  cx) ?; 
2710+                     f. write_str( & cx. into_buffer( ) ) ?; 
2711+                     Ok ( ( ) ) 
2712+                 } ) 
2713+             } 
2714+         } ) +
2715+     } ; 
2716+ } 
2717+ 
2718+ macro_rules!  define_print { 
2719+     ( ( $self: ident,  $cx: ident) :  $( $ty: ty $print: block) +)  => { 
2720+         $( impl <' tcx,  P :  PrettyPrinter <' tcx>> Print <' tcx,  P > for  $ty { 
2721+             fn  print( & $self,  $cx:  & mut  P )  -> Result <( ) ,  PrintError > { 
2722+                 define_scoped_cx!( $cx) ; 
2723+                 let  _:  ( )  = $print; 
2724+                 Ok ( ( ) ) 
2725+             } 
2726+         } ) +
2727+     } ; 
2728+ } 
2729+ 
2730+ macro_rules!  define_print_and_forward_display { 
2731+     ( ( $self: ident,  $cx: ident) :  $( $ty: ty $print: block) +)  => { 
2732+         define_print!( ( $self,  $cx) :  $( $ty $print) * ) ; 
2733+         forward_display_to_print!( $( $ty) ,+) ; 
2734+     } ; 
2735+ } 
2736+ 
27472737forward_display_to_print !  { 
27482738    ty:: Region <' tcx>, 
27492739    Ty <' tcx>, 
0 commit comments