@@ -565,11 +565,12 @@ mod imp {
565565} 
566566impl_Exp ! ( i128 ,  u128  as  u128  via to_u128 named exp_u128) ; 
567567
568+ const  U128_MAX_DEC_N :  usize  = u128:: MAX . ilog ( 10 )  as  usize  + 1 ; 
569+ 
568570#[ stable( feature = "rust1" ,  since = "1.0.0" ) ]  
569571impl  fmt:: Display  for  u128  { 
570572    fn  fmt ( & self ,  f :  & mut  fmt:: Formatter < ' _ > )  -> fmt:: Result  { 
571-         const  MAX_DEC_N :  usize  = u128:: MAX . ilog ( 10 )  as  usize  + 1 ; 
572-         let  mut  buf = [ MaybeUninit :: < u8 > :: uninit ( ) ;  MAX_DEC_N ] ; 
573+         let  mut  buf = [ MaybeUninit :: < u8 > :: uninit ( ) ;  U128_MAX_DEC_N ] ; 
573574
574575        f. pad_integral ( true ,  "" ,  self . _fmt ( & mut  buf) ) 
575576    } 
@@ -579,9 +580,8 @@ impl fmt::Display for u128 {
579580impl  fmt:: Display  for  i128  { 
580581    fn  fmt ( & self ,  f :  & mut  fmt:: Formatter < ' _ > )  -> fmt:: Result  { 
581582        // This is not a typo, we use the maximum number of digits of `u128`, hence why we use 
582-         // `u128::MAX`. 
583-         const  MAX_DEC_N :  usize  = u128:: MAX . ilog ( 10 )  as  usize  + 1 ; 
584-         let  mut  buf = [ MaybeUninit :: < u8 > :: uninit ( ) ;  MAX_DEC_N ] ; 
583+         // `U128_MAX_DEC_N`. 
584+         let  mut  buf = [ MaybeUninit :: < u8 > :: uninit ( ) ;  U128_MAX_DEC_N ] ; 
585585
586586        let  is_nonnegative = * self  >= 0 ; 
587587        f. pad_integral ( is_nonnegative,  "" ,  self . unsigned_abs ( ) . _fmt ( & mut  buf) ) 
@@ -598,8 +598,6 @@ impl u128 {
598598        issue = "none"  
599599    ) ]  
600600    pub  fn  _fmt < ' a > ( self ,  buf :  & ' a  mut  [ MaybeUninit < u8 > ] )  -> & ' a  str  { 
601-         const  MAX_DEC_N :  usize  = u128:: MAX . ilog ( 10 )  as  usize  + 1 ; 
602- 
603601        // Optimize common-case zero, which would also need special treatment due to 
604602        // its "leading" zero. 
605603        if  self  == 0  { 
@@ -609,26 +607,26 @@ impl u128 {
609607        // Take the 16 least-significant decimals. 
610608        let  ( quot_1e16,  mod_1e16)  = div_rem_1e16 ( self ) ; 
611609        let  ( mut  remain,  mut  offset)  = if  quot_1e16 == 0  { 
612-             ( mod_1e16,  MAX_DEC_N ) 
610+             ( mod_1e16,  U128_MAX_DEC_N ) 
613611        }  else  { 
614612            // Write digits at buf[23..39]. 
615-             enc_16lsd :: < {  MAX_DEC_N  - 16  } > ( buf,  mod_1e16) ; 
613+             enc_16lsd :: < {  U128_MAX_DEC_N  - 16  } > ( buf,  mod_1e16) ; 
616614
617615            // Take another 16 decimals. 
618616            let  ( quot2,  mod2)  = div_rem_1e16 ( quot_1e16) ; 
619617            if  quot2 == 0  { 
620-                 ( mod2,  MAX_DEC_N  - 16 ) 
618+                 ( mod2,  U128_MAX_DEC_N  - 16 ) 
621619            }  else  { 
622620                // Write digits at buf[7..23]. 
623-                 enc_16lsd :: < {  MAX_DEC_N  - 32  } > ( buf,  mod2) ; 
621+                 enc_16lsd :: < {  U128_MAX_DEC_N  - 32  } > ( buf,  mod2) ; 
624622                // Quot2 has at most 7 decimals remaining after two 1e16 divisions. 
625-                 ( quot2 as  u64 ,  MAX_DEC_N  - 32 ) 
623+                 ( quot2 as  u64 ,  U128_MAX_DEC_N  - 32 ) 
626624            } 
627625        } ; 
628626
629627        // Format per four digits from the lookup table. 
630628        while  remain > 999  { 
631-             // SAFETY: All of the decimals fit in buf due to MAX_DEC_N  
629+             // SAFETY: All of the decimals fit in buf due to U128_MAX_DEC_N  
632630            // and the while condition ensures at least 4 more decimals. 
633631            unsafe  {  core:: hint:: assert_unchecked ( offset >= 4 )  } 
634632            // SAFETY: The offset counts down from its initial buf.len() 
@@ -649,7 +647,7 @@ impl u128 {
649647
650648        // Format per two digits from the lookup table. 
651649        if  remain > 9  { 
652-             // SAFETY: All of the decimals fit in buf due to MAX_DEC_N  
650+             // SAFETY: All of the decimals fit in buf due to U128_MAX_DEC_N  
653651            // and the if condition ensures at least 2 more decimals. 
654652            unsafe  {  core:: hint:: assert_unchecked ( offset >= 2 )  } 
655653            // SAFETY: The offset counts down from its initial buf.len() 
@@ -665,7 +663,7 @@ impl u128 {
665663
666664        // Format the last remaining digit, if any. 
667665        if  remain != 0  { 
668-             // SAFETY: All of the decimals fit in buf due to MAX_DEC_N  
666+             // SAFETY: All of the decimals fit in buf due to U128_MAX_DEC_N  
669667            // and the if condition ensures (at least) 1 more decimals. 
670668            unsafe  {  core:: hint:: assert_unchecked ( offset >= 1 )  } 
671669            // SAFETY: The offset counts down from its initial buf.len() 
0 commit comments