@@ -389,6 +389,49 @@ fn write_with_opt_paren<T: fmt::Display>(
389389    Ok ( ( ) ) 
390390} 
391391
392+ impl  Display < ' _ >  { 
393+     fn  display_sub_cfgs ( 
394+         & self , 
395+         fmt :  & mut  fmt:: Formatter < ' _ > , 
396+         sub_cfgs :  & [ Cfg ] , 
397+         separator :  & str , 
398+     )  -> fmt:: Result  { 
399+         let  short_longhand = self . 1 . is_long ( )  && { 
400+             let  all_crate_features =
401+                 sub_cfgs. iter ( ) . all ( |sub_cfg| matches ! ( sub_cfg,  Cfg :: Cfg ( sym:: feature,  Some ( _) ) ) ) ; 
402+             let  all_target_features = sub_cfgs
403+                 . iter ( ) 
404+                 . all ( |sub_cfg| matches ! ( sub_cfg,  Cfg :: Cfg ( sym:: target_feature,  Some ( _) ) ) ) ; 
405+ 
406+             if  all_crate_features { 
407+                 fmt. write_str ( "crate features " ) ?; 
408+                 true 
409+             }  else  if  all_target_features { 
410+                 fmt. write_str ( "target features " ) ?; 
411+                 true 
412+             }  else  { 
413+                 false 
414+             } 
415+         } ; 
416+ 
417+         for  ( i,  sub_cfg)  in  sub_cfgs. iter ( ) . enumerate ( )  { 
418+             if  i != 0  { 
419+                 fmt. write_str ( separator) ?; 
420+             } 
421+             if  let  ( true ,  Cfg :: Cfg ( _,  Some ( feat) ) )  = ( short_longhand,  sub_cfg)  { 
422+                 if  self . 1 . is_html ( )  { 
423+                     write ! ( fmt,  "<code>{feat}</code>" ) ?; 
424+                 }  else  { 
425+                     write ! ( fmt,  "`{feat}`" ) ?; 
426+                 } 
427+             }  else  { 
428+                 write_with_opt_paren ( fmt,  !sub_cfg. is_all ( ) ,  Display ( sub_cfg,  self . 1 ) ) ?; 
429+             } 
430+         } 
431+         Ok ( ( ) ) 
432+     } 
433+ } 
434+ 
392435impl  fmt:: Display  for  Display < ' _ >  { 
393436    fn  fmt ( & self ,  fmt :  & mut  fmt:: Formatter < ' _ > )  -> fmt:: Result  { 
394437        match  * self . 0  { 
@@ -408,79 +451,9 @@ impl fmt::Display for Display<'_> {
408451
409452            Cfg :: Any ( ref  sub_cfgs)  => { 
410453                let  separator = if  sub_cfgs. iter ( ) . all ( Cfg :: is_simple)  {  " or "  }  else  {  ", or "  } ; 
411- 
412-                 let  short_longhand = self . 1 . is_long ( )  && { 
413-                     let  all_crate_features = sub_cfgs
414-                         . iter ( ) 
415-                         . all ( |sub_cfg| matches ! ( sub_cfg,  Cfg :: Cfg ( sym:: feature,  Some ( _) ) ) ) ; 
416-                     let  all_target_features = sub_cfgs
417-                         . iter ( ) 
418-                         . all ( |sub_cfg| matches ! ( sub_cfg,  Cfg :: Cfg ( sym:: target_feature,  Some ( _) ) ) ) ; 
419- 
420-                     if  all_crate_features { 
421-                         fmt. write_str ( "crate features " ) ?; 
422-                         true 
423-                     }  else  if  all_target_features { 
424-                         fmt. write_str ( "target features " ) ?; 
425-                         true 
426-                     }  else  { 
427-                         false 
428-                     } 
429-                 } ; 
430- 
431-                 for  ( i,  sub_cfg)  in  sub_cfgs. iter ( ) . enumerate ( )  { 
432-                     if  i != 0  { 
433-                         fmt. write_str ( separator) ?; 
434-                     } 
435-                     if  let  ( true ,  Cfg :: Cfg ( _,  Some ( feat) ) )  = ( short_longhand,  sub_cfg)  { 
436-                         if  self . 1 . is_html ( )  { 
437-                             write ! ( fmt,  "<code>{feat}</code>" ) ?; 
438-                         }  else  { 
439-                             write ! ( fmt,  "`{feat}`" ) ?; 
440-                         } 
441-                     }  else  { 
442-                         write_with_opt_paren ( fmt,  !sub_cfg. is_all ( ) ,  Display ( sub_cfg,  self . 1 ) ) ?; 
443-                     } 
444-                 } 
445-                 Ok ( ( ) ) 
446-             } 
447- 
448-             Cfg :: All ( ref  sub_cfgs)  => { 
449-                 let  short_longhand = self . 1 . is_long ( )  && { 
450-                     let  all_crate_features = sub_cfgs
451-                         . iter ( ) 
452-                         . all ( |sub_cfg| matches ! ( sub_cfg,  Cfg :: Cfg ( sym:: feature,  Some ( _) ) ) ) ; 
453-                     let  all_target_features = sub_cfgs
454-                         . iter ( ) 
455-                         . all ( |sub_cfg| matches ! ( sub_cfg,  Cfg :: Cfg ( sym:: target_feature,  Some ( _) ) ) ) ; 
456- 
457-                     if  all_crate_features { 
458-                         fmt. write_str ( "crate features " ) ?; 
459-                         true 
460-                     }  else  if  all_target_features { 
461-                         fmt. write_str ( "target features " ) ?; 
462-                         true 
463-                     }  else  { 
464-                         false 
465-                     } 
466-                 } ; 
467- 
468-                 for  ( i,  sub_cfg)  in  sub_cfgs. iter ( ) . enumerate ( )  { 
469-                     if  i != 0  { 
470-                         fmt. write_str ( " and " ) ?; 
471-                     } 
472-                     if  let  ( true ,  Cfg :: Cfg ( _,  Some ( feat) ) )  = ( short_longhand,  sub_cfg)  { 
473-                         if  self . 1 . is_html ( )  { 
474-                             write ! ( fmt,  "<code>{feat}</code>" ) ?; 
475-                         }  else  { 
476-                             write ! ( fmt,  "`{feat}`" ) ?; 
477-                         } 
478-                     }  else  { 
479-                         write_with_opt_paren ( fmt,  !sub_cfg. is_simple ( ) ,  Display ( sub_cfg,  self . 1 ) ) ?; 
480-                     } 
481-                 } 
482-                 Ok ( ( ) ) 
454+                 self . display_sub_cfgs ( fmt,  sub_cfgs,  separator) 
483455            } 
456+             Cfg :: All ( ref  sub_cfgs)  => self . display_sub_cfgs ( fmt,  sub_cfgs,  " and " ) , 
484457
485458            Cfg :: True  => fmt. write_str ( "everywhere" ) , 
486459            Cfg :: False  => fmt. write_str ( "nowhere" ) , 
0 commit comments