@@ -2647,37 +2647,50 @@ impl ToString for i8 {
26472647// for strings, including `&&&str`s that would never be written 
26482648// by hand. This macro generates twelve layers of nested `&`-impl 
26492649// for primitive strings. 
2650- macro_rules!  to_string_str { 
2651-     { type  ;  x $( $x: ident) * }  => { 
2652-         & to_string_str! {  type  ;  $( $x) *  } 
2653-     } ; 
2654-     { type  ; }  => {  str  } ; 
2655-     { impl  ;  x $( $x: ident) * }  => { 
2656-         to_string_str! {  $( $x) *  } 
2650+ #[ cfg( not( no_global_oom_handling) ) ]  
2651+ macro_rules!  to_string_str_wrap_in_ref { 
2652+     { x $( $x: ident) * }  => { 
2653+         & to_string_str_wrap_in_ref! {  $( $x) *  } 
26572654    } ; 
2658-     { impl  ; }  => {  } ; 
2655+     { }  => {  str  } ; 
2656+ } 
2657+ #[ cfg( not( no_global_oom_handling) ) ]  
2658+ macro_rules!  to_string_expr_wrap_in_deref { 
26592659    { $self: expr ;  x $( $x: ident) * }  => { 
2660-         * ( to_string_str ! {  $self ;  $( $x) *  } ) 
2660+         * ( to_string_expr_wrap_in_deref ! {  $self ;  $( $x) *  } ) 
26612661    } ; 
26622662    { $self: expr ; }  => {  $self } ; 
2663-     { $( $x: ident) * }  => { 
2664-         #[ doc( hidden) ] 
2665-         #[ cfg( not( no_global_oom_handling) ) ] 
2666-         #[ stable( feature = "str_to_string_specialization" ,  since = "1.9.0" ) ] 
2667-         impl  ToString  for  to_string_str!( type  ;  $( $x) * )  { 
2668-             #[ inline] 
2669-             fn  to_string( & self )  -> String  { 
2670-                 String :: from( to_string_str!( self  ;  $( $x) * ) ) 
2663+ } 
2664+ #[ cfg( not( no_global_oom_handling) ) ]  
2665+ macro_rules!  to_string_str { 
2666+     { $( $( $x: ident) * ) ,+}  => { 
2667+         $( 
2668+             #[ doc( hidden) ] 
2669+             #[ stable( feature = "str_to_string_specialization" ,  since = "1.9.0" ) ] 
2670+             impl  ToString  for  to_string_str_wrap_in_ref!( $( $x) * )  { 
2671+                 #[ inline] 
2672+                 fn  to_string( & self )  -> String  { 
2673+                     String :: from( to_string_expr_wrap_in_deref!( self  ;  $( $x) * ) ) 
2674+                 } 
26712675            } 
2672-         } 
2673-         to_string_str! {  impl  ;  $( $x) *  } 
2676+         ) +
26742677    } ; 
26752678} 
26762679
2680+ #[ cfg( not( no_global_oom_handling) ) ]  
26772681to_string_str !  { 
2678-     x x x x
2679-     x x x x
2680-     x x x x
2682+     x x x x x x x x x x x x, 
2683+     x x x x x x x x x x x, 
2684+     x x x x x x x x x x, 
2685+     x x x x x x x x x, 
2686+     x x x x x x x x, 
2687+     x x x x x x x, 
2688+     x x x x x x, 
2689+     x x x x x, 
2690+     x x x x, 
2691+     x x x, 
2692+     x x, 
2693+     x, 
26812694} 
26822695
26832696#[ doc( hidden) ]  
0 commit comments