@@ -400,36 +400,21 @@ impl LiteralDigitGrouping {
400
400
}
401
401
}
402
402
403
- match lit. kind {
404
- LitKind :: Int ( ..) => {
405
- Self :: do_lint( digit_info. digits, in_macro) ?;
406
- } ,
407
- LitKind :: Float ( ..) => {
408
- // Separate digits into integral and fractional parts.
409
- let parts: Vec <& str > = digit_info
410
- . digits
411
- . split_terminator( '.' )
412
- . collect( ) ;
413
-
414
- // Lint integral and fractional parts separately, and then check consistency of digit
415
- // groups if both pass.
416
- let integral_group_size = Self :: do_lint( parts[ 0 ] , in_macro) ?;
417
- if parts. len( ) > 1 {
418
- // Lint the fractional part of literal just like integral part, but reversed.
419
- let fractional_part = & parts[ 1 ] . chars( ) . rev( ) . collect:: <String >( ) ;
420
- let fractional_group_size = Self :: do_lint( fractional_part, in_macro) ?;
421
- let consistent = Self :: parts_consistent( integral_group_size,
422
- fractional_group_size,
423
- parts[ 0 ] . len( ) ,
424
- parts[ 1 ] . len( ) ) ;
425
- if !consistent {
426
- return Err ( WarningType :: InconsistentDigitGrouping ) ;
427
- } ;
428
- } ;
429
- } ,
430
- _ => ( ) ,
403
+ let ( integer, fraction, _) = digit_info. split_digit_parts( ) ;
404
+
405
+ let integral_group_size = Self :: do_lint( integer, in_macro) ?;
406
+ if let Some ( fraction) = fraction {
407
+ let fractional_part = fraction. chars( ) . rev( ) . collect:: <String >( ) ;
408
+ let fractional_group_size = Self :: do_lint( & fractional_part, in_macro) ?;
409
+
410
+ let consistent = Self :: parts_consistent( integral_group_size,
411
+ fractional_group_size,
412
+ integer. len( ) ,
413
+ fraction. len( ) ) ;
414
+ if !consistent {
415
+ return Err ( WarningType :: InconsistentDigitGrouping ) ;
416
+ } ;
431
417
}
432
-
433
418
Ok ( ( ) )
434
419
} ) ( ) ;
435
420
0 commit comments