@@ -774,17 +774,15 @@ impl<'a> Codegen<'a> {
774774 }
775775
776776 let mut best_candidate = s. cow_replacen ( "e+" , "e" , 1 ) ;
777- let mut best_len = best_candidate. len ( ) ;
778777 let mut is_hex = false ;
779778
780779 // Track the best candidate found so far
781780 if num. fract ( ) == 0.0 {
782781 // For integers, check hex format and other optimizations
783782 let hex_candidate = format ! ( "0x{:x}" , num as u128 ) ;
784- if hex_candidate. len ( ) < best_len {
783+ if hex_candidate. len ( ) < best_candidate . len ( ) {
785784 is_hex = true ;
786785 best_candidate = hex_candidate. into ( ) ;
787- best_len = best_candidate. len ( ) ;
788786 }
789787 }
790788 // Check for scientific notation optimizations for numbers starting with ".0"
@@ -797,10 +795,9 @@ impl<'a> Codegen<'a> {
797795 let exp_str_len = itoa:: Buffer :: new ( ) . format ( exp) . len ( ) ;
798796 // Calculate expected length: digits + 'e-' + exp_length
799797 let expected_len = digits. len ( ) + 2 + exp_str_len;
800- if expected_len < best_len {
798+ if expected_len < best_candidate . len ( ) {
801799 best_candidate = format ! ( "{digits}e-{exp}" ) . into ( ) ;
802800 debug_assert_eq ! ( best_candidate. len( ) , expected_len) ;
803- best_len = best_candidate. len ( ) ;
804801 }
805802 }
806803 }
@@ -814,10 +811,9 @@ impl<'a> Codegen<'a> {
814811 let exp_str_len = itoa:: Buffer :: new ( ) . format ( len) . len ( ) ;
815812 // Calculate expected length: base + 'e' + len
816813 let expected_len = base. len ( ) + 1 + exp_str_len;
817- if expected_len < best_len {
814+ if expected_len < best_candidate . len ( ) {
818815 best_candidate = format ! ( "{base}e{len}" ) . into ( ) ;
819816 debug_assert_eq ! ( best_candidate. len( ) , expected_len) ;
820- best_len = expected_len;
821817 }
822818 }
823819 }
@@ -831,7 +827,7 @@ impl<'a> Codegen<'a> {
831827 let new_exp_str_len = itoa:: Buffer :: new ( ) . format ( new_expr) . len ( ) ;
832828 // Calculate expected length: integer + point + 'e' + new_exp_str_len
833829 let expected_len = integer. len ( ) + point. len ( ) + 1 + new_exp_str_len;
834- if expected_len < best_len {
830+ if expected_len < best_candidate . len ( ) {
835831 best_candidate = format ! ( "{integer}{point}e{new_expr}" ) . into ( ) ;
836832 debug_assert_eq ! ( best_candidate. len( ) , expected_len) ;
837833 }
0 commit comments