Skip to content

Commit 3b53de6

Browse files
committed
Fix rust-lang/rust#79255 - Incorrect try suggestion for unnecessary float literal cast ending in dot
1 parent 0402c6a commit 3b53de6

File tree

4 files changed

+27
-11
lines changed

4 files changed

+27
-11
lines changed

clippy_lints/src/types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1711,7 +1711,7 @@ fn show_unnecessary_cast(cx: &LateContext<'_>, expr: &Expr<'_>, literal_str: &st
17111711
expr.span,
17121712
&format!("casting {} literal to `{}` is unnecessary", literal_kind_name, cast_to),
17131713
"try",
1714-
format!("{}_{}", literal_str, cast_to),
1714+
format!("{}_{}", literal_str.trim_end_matches('.'), cast_to),
17151715
Applicability::MachineApplicable,
17161716
);
17171717
}

tests/ui/unnecessary_cast_fixable.fixed

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ fn main() {
1111
let _ = -100_f32;
1212
let _ = -100_f64;
1313
let _ = -100_f64;
14+
100_f32;
15+
100_f64;
1416
// Should not trigger
1517
#[rustfmt::skip]
1618
let v = vec!(1);

tests/ui/unnecessary_cast_fixable.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ fn main() {
1111
let _ = -100 as f32;
1212
let _ = -100 as f64;
1313
let _ = -100_i32 as f64;
14+
100. as f32;
15+
100. as f64;
1416
// Should not trigger
1517
#[rustfmt::skip]
1618
let v = vec!(1);

tests/ui/unnecessary_cast_fixable.stderr

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,59 +36,71 @@ error: casting integer literal to `f64` is unnecessary
3636
LL | let _ = -100_i32 as f64;
3737
| ^^^^^^^^^^^^^^^ help: try: `-100_f64`
3838

39+
error: casting float literal to `f32` is unnecessary
40+
--> $DIR/unnecessary_cast_fixable.rs:14:5
41+
|
42+
LL | 100. as f32;
43+
| ^^^^^^^^^^^ help: try: `100_f32`
44+
45+
error: casting float literal to `f64` is unnecessary
46+
--> $DIR/unnecessary_cast_fixable.rs:15:5
47+
|
48+
LL | 100. as f64;
49+
| ^^^^^^^^^^^ help: try: `100_f64`
50+
3951
error: casting integer literal to `u32` is unnecessary
40-
--> $DIR/unnecessary_cast_fixable.rs:25:5
52+
--> $DIR/unnecessary_cast_fixable.rs:27:5
4153
|
4254
LL | 1 as u32;
4355
| ^^^^^^^^ help: try: `1_u32`
4456

4557
error: casting integer literal to `i32` is unnecessary
46-
--> $DIR/unnecessary_cast_fixable.rs:26:5
58+
--> $DIR/unnecessary_cast_fixable.rs:28:5
4759
|
4860
LL | 0x10 as i32;
4961
| ^^^^^^^^^^^ help: try: `0x10_i32`
5062

5163
error: casting integer literal to `usize` is unnecessary
52-
--> $DIR/unnecessary_cast_fixable.rs:27:5
64+
--> $DIR/unnecessary_cast_fixable.rs:29:5
5365
|
5466
LL | 0b10 as usize;
5567
| ^^^^^^^^^^^^^ help: try: `0b10_usize`
5668

5769
error: casting integer literal to `u16` is unnecessary
58-
--> $DIR/unnecessary_cast_fixable.rs:28:5
70+
--> $DIR/unnecessary_cast_fixable.rs:30:5
5971
|
6072
LL | 0o73 as u16;
6173
| ^^^^^^^^^^^ help: try: `0o73_u16`
6274

6375
error: casting integer literal to `u32` is unnecessary
64-
--> $DIR/unnecessary_cast_fixable.rs:29:5
76+
--> $DIR/unnecessary_cast_fixable.rs:31:5
6577
|
6678
LL | 1_000_000_000 as u32;
6779
| ^^^^^^^^^^^^^^^^^^^^ help: try: `1_000_000_000_u32`
6880

6981
error: casting float literal to `f64` is unnecessary
70-
--> $DIR/unnecessary_cast_fixable.rs:31:5
82+
--> $DIR/unnecessary_cast_fixable.rs:33:5
7183
|
7284
LL | 1.0 as f64;
7385
| ^^^^^^^^^^ help: try: `1.0_f64`
7486

7587
error: casting float literal to `f32` is unnecessary
76-
--> $DIR/unnecessary_cast_fixable.rs:32:5
88+
--> $DIR/unnecessary_cast_fixable.rs:34:5
7789
|
7890
LL | 0.5 as f32;
7991
| ^^^^^^^^^^ help: try: `0.5_f32`
8092

8193
error: casting integer literal to `i32` is unnecessary
82-
--> $DIR/unnecessary_cast_fixable.rs:36:13
94+
--> $DIR/unnecessary_cast_fixable.rs:38:13
8395
|
8496
LL | let _ = -1 as i32;
8597
| ^^^^^^^^^ help: try: `-1_i32`
8698

8799
error: casting float literal to `f32` is unnecessary
88-
--> $DIR/unnecessary_cast_fixable.rs:37:13
100+
--> $DIR/unnecessary_cast_fixable.rs:39:13
89101
|
90102
LL | let _ = -1.0 as f32;
91103
| ^^^^^^^^^^^ help: try: `-1.0_f32`
92104

93-
error: aborting due to 15 previous errors
105+
error: aborting due to 17 previous errors
94106

0 commit comments

Comments
 (0)