Skip to content

Commit b4a50e9

Browse files
committed
mistyped_literal_suffixes: ignore floats without exponent
Previously this lint would only look at the integer part of floating point literals without an exponent, giving wrong suggestions like: ``` | 8 | let _ = 123_32.123; | ^^^^^^^^^^ help: did you mean to write: `123.123_f32` | ``` Instead, it now ignores these literals. Fixes rust-lang#6129
1 parent f290249 commit b4a50e9

File tree

4 files changed

+10
-2
lines changed

4 files changed

+10
-2
lines changed

clippy_lints/src/literal_representation.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ impl LiteralDigitGrouping {
308308
let (part, mistyped_suffixes, is_float) = if let Some((_, exponent)) = &mut num_lit.exponent {
309309
(exponent, &["32", "64"][..], true)
310310
} else if num_lit.fraction.is_some() {
311-
(&mut num_lit.integer, &["32", "64"][..], true)
311+
return true;
312312
} else {
313313
(&mut num_lit.integer, &["8", "16", "32", "64"][..], false)
314314
};

tests/ui/mistyped_literal_suffix.fixed

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,9 @@ fn main() {
3535
let ok35 = 0x12345_16;
3636
let fail36 = 0xFFFF_FFFF_FFFF_FFFF_u64; // u64
3737

38+
// issue #6129
39+
let ok37 = 123_32.123;
40+
let ok38 = 124_64.0;
41+
3842
let _ = 1.123_45E1_f32;
3943
}

tests/ui/mistyped_literal_suffix.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,9 @@ fn main() {
3535
let ok35 = 0x12345_16;
3636
let fail36 = 0xFFFF_FFFF_FFFF_FFFF_64; // u64
3737

38+
// issue #6129
39+
let ok37 = 123_32.123;
40+
let ok38 = 124_64.0;
41+
3842
let _ = 1.12345E1_32;
3943
}

tests/ui/mistyped_literal_suffix.stderr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ LL | let fail36 = 0xFFFF_FFFF_FFFF_FFFF_64; // u64
9191
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: did you mean to write: `0xFFFF_FFFF_FFFF_FFFF_u64`
9292

9393
error: mistyped literal suffix
94-
--> $DIR/mistyped_literal_suffix.rs:38:13
94+
--> $DIR/mistyped_literal_suffix.rs:42:13
9595
|
9696
LL | let _ = 1.12345E1_32;
9797
| ^^^^^^^^^^^^ help: did you mean to write: `1.123_45E1_f32`

0 commit comments

Comments
 (0)