@@ -770,17 +770,15 @@ impl<'a> Codegen<'a> {
770770 }
771771
772772 let mut best_candidate = s. cow_replacen ( "e+" , "e" , 1 ) ;
773- let mut best_len = best_candidate. len ( ) ;
774773 let mut is_hex = false ;
775774
776775 // Track the best candidate found so far
777776 if num. fract ( ) == 0.0 {
778777 // For integers, check hex format and other optimizations
779778 let hex_candidate = format ! ( "0x{:x}" , num as u128 ) ;
780- if hex_candidate. len ( ) < best_len {
779+ if hex_candidate. len ( ) < best_candidate . len ( ) {
781780 is_hex = true ;
782781 best_candidate = hex_candidate. into ( ) ;
783- best_len = best_candidate. len ( ) ;
784782 }
785783 }
786784 // Check for scientific notation optimizations for numbers starting with ".0"
@@ -793,10 +791,9 @@ impl<'a> Codegen<'a> {
793791 let exp_str_len = itoa:: Buffer :: new ( ) . format ( exp) . len ( ) ;
794792 // Calculate expected length: digits + 'e-' + exp_length
795793 let expected_len = digits. len ( ) + 2 + exp_str_len;
796- if expected_len < best_len {
794+ if expected_len < best_candidate . len ( ) {
797795 best_candidate = format ! ( "{digits}e-{exp}" ) . into ( ) ;
798796 debug_assert_eq ! ( best_candidate. len( ) , expected_len) ;
799- best_len = best_candidate. len ( ) ;
800797 }
801798 }
802799 }
@@ -810,10 +807,9 @@ impl<'a> Codegen<'a> {
810807 let exp_str_len = itoa:: Buffer :: new ( ) . format ( len) . len ( ) ;
811808 // Calculate expected length: base + 'e' + len
812809 let expected_len = base. len ( ) + 1 + exp_str_len;
813- if expected_len < best_len {
810+ if expected_len < best_candidate . len ( ) {
814811 best_candidate = format ! ( "{base}e{len}" ) . into ( ) ;
815812 debug_assert_eq ! ( best_candidate. len( ) , expected_len) ;
816- best_len = expected_len;
817813 }
818814 }
819815 }
@@ -827,7 +823,7 @@ impl<'a> Codegen<'a> {
827823 let new_exp_str_len = itoa:: Buffer :: new ( ) . format ( new_expr) . len ( ) ;
828824 // Calculate expected length: integer + point + 'e' + new_exp_str_len
829825 let expected_len = integer. len ( ) + point. len ( ) + 1 + new_exp_str_len;
830- if expected_len < best_len {
826+ if expected_len < best_candidate . len ( ) {
831827 best_candidate = format ! ( "{integer}{point}e{new_expr}" ) . into ( ) ;
832828 debug_assert_eq ! ( best_candidate. len( ) , expected_len) ;
833829 }
0 commit comments