@@ -208,7 +208,7 @@ static DEC_DIGITS_LUT: &[u8; 200] = b"0001020304050607080910111213141516171819\
208
208
8081828384858687888990919293949596979899";
209
209
210
210
macro_rules! impl_Display {
211
- ( $( $t: ident => $size : literal $( as $positive: ident) ? named $name: ident, ) * ; as $u: ident via $conv_fn: ident named $gen_name: ident) => {
211
+ ( $( $t: ident $( as $positive: ident) ? named $name: ident, ) * ; as $u: ident via $conv_fn: ident named $gen_name: ident) => {
212
212
213
213
$(
214
214
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
@@ -248,8 +248,9 @@ macro_rules! impl_Display {
248
248
#[ cfg( not( feature = "optimize_for_size" ) ) ]
249
249
impl $t {
250
250
fn _fmt( mut self : $t, is_nonnegative: bool , f: & mut fmt:: Formatter <' _>) -> fmt:: Result {
251
- let mut buf = [ MaybeUninit :: <u8 >:: uninit( ) ; $size] ;
252
- let mut curr = $size;
251
+ const SIZE : usize = $t:: MAX . ilog( 10 ) as usize + 1 ;
252
+ let mut buf = [ MaybeUninit :: <u8 >:: uninit( ) ; SIZE ] ;
253
+ let mut curr = SIZE ;
253
254
let buf_ptr = MaybeUninit :: slice_as_mut_ptr( & mut buf) ;
254
255
let lut_ptr = DEC_DIGITS_LUT . as_ptr( ) ;
255
256
@@ -526,16 +527,16 @@ macro_rules! impl_Exp {
526
527
mod imp {
527
528
use super :: * ;
528
529
impl_Display ! (
529
- i8 => 3 as u8 named fmt_i8,
530
- u8 => 3 named fmt_u8,
531
- i16 => 5 as u16 named fmt_i16,
532
- u16 => 5 named fmt_u16,
533
- i32 => 10 as u32 named fmt_i32,
534
- u32 => 10 named fmt_u32,
535
- i64 => 19 as u64 named fmt_i64,
536
- u64 => 20 named fmt_u64,
537
- isize => 19 as usize named fmt_isize,
538
- usize => 20 named fmt_usize,
530
+ i8 as u8 named fmt_i8,
531
+ u8 named fmt_u8,
532
+ i16 as u16 named fmt_i16,
533
+ u16 named fmt_u16,
534
+ i32 as u32 named fmt_i32,
535
+ u32 named fmt_u32,
536
+ i64 as u64 named fmt_i64,
537
+ u64 named fmt_u64,
538
+ isize as usize named fmt_isize,
539
+ usize named fmt_usize,
539
540
; as u64 via to_u64 named fmt_u64
540
541
) ;
541
542
impl_Exp ! (
@@ -548,18 +549,18 @@ mod imp {
548
549
mod imp {
549
550
use super :: * ;
550
551
impl_Display ! (
551
- i8 => 3 as u8 named fmt_i8,
552
- u8 => 3 named fmt_u8,
553
- i16 => 5 as u16 named fmt_i16,
554
- u16 => 5 named fmt_u16,
555
- i32 => 10 as u32 named fmt_i32,
556
- u32 => 10 named fmt_u32,
557
- isize => 19 as usize named fmt_isize,
558
- usize => 20 named fmt_usize,
552
+ i8 as u8 named fmt_i8,
553
+ u8 named fmt_u8,
554
+ i16 as u16 named fmt_i16,
555
+ u16 named fmt_u16,
556
+ i32 as u32 named fmt_i32,
557
+ u32 named fmt_u32,
558
+ isize as usize named fmt_isize,
559
+ usize named fmt_usize,
559
560
; as u32 via to_u32 named fmt_u32) ;
560
561
impl_Display ! (
561
- i64 => 19 as u64 named fmt_i64,
562
- u64 => 20 named fmt_u64,
562
+ i64 as u64 named fmt_i64,
563
+ u64 named fmt_u64,
563
564
; as u64 via to_u64 named fmt_u64) ;
564
565
565
566
impl_Exp ! ( i8 , u8 , i16 , u16 , i32 , u32 , isize , usize as u32 via to_u32 named exp_u32) ;
0 commit comments