mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-27 15:11:30 +00:00
Fix rust-lang/rust#79255 - Incorrect try suggestion for unnecessary float literal cast ending in dot
This commit is contained in:
parent
0402c6ace7
commit
3b53de6b36
4 changed files with 27 additions and 11 deletions
|
@ -1711,7 +1711,7 @@ fn show_unnecessary_cast(cx: &LateContext<'_>, expr: &Expr<'_>, literal_str: &st
|
||||||
expr.span,
|
expr.span,
|
||||||
&format!("casting {} literal to `{}` is unnecessary", literal_kind_name, cast_to),
|
&format!("casting {} literal to `{}` is unnecessary", literal_kind_name, cast_to),
|
||||||
"try",
|
"try",
|
||||||
format!("{}_{}", literal_str, cast_to),
|
format!("{}_{}", literal_str.trim_end_matches('.'), cast_to),
|
||||||
Applicability::MachineApplicable,
|
Applicability::MachineApplicable,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,8 @@ fn main() {
|
||||||
let _ = -100_f32;
|
let _ = -100_f32;
|
||||||
let _ = -100_f64;
|
let _ = -100_f64;
|
||||||
let _ = -100_f64;
|
let _ = -100_f64;
|
||||||
|
100_f32;
|
||||||
|
100_f64;
|
||||||
// Should not trigger
|
// Should not trigger
|
||||||
#[rustfmt::skip]
|
#[rustfmt::skip]
|
||||||
let v = vec!(1);
|
let v = vec!(1);
|
||||||
|
|
|
@ -11,6 +11,8 @@ fn main() {
|
||||||
let _ = -100 as f32;
|
let _ = -100 as f32;
|
||||||
let _ = -100 as f64;
|
let _ = -100 as f64;
|
||||||
let _ = -100_i32 as f64;
|
let _ = -100_i32 as f64;
|
||||||
|
100. as f32;
|
||||||
|
100. as f64;
|
||||||
// Should not trigger
|
// Should not trigger
|
||||||
#[rustfmt::skip]
|
#[rustfmt::skip]
|
||||||
let v = vec!(1);
|
let v = vec!(1);
|
||||||
|
|
|
@ -36,59 +36,71 @@ error: casting integer literal to `f64` is unnecessary
|
||||||
LL | let _ = -100_i32 as f64;
|
LL | let _ = -100_i32 as f64;
|
||||||
| ^^^^^^^^^^^^^^^ help: try: `-100_f64`
|
| ^^^^^^^^^^^^^^^ help: try: `-100_f64`
|
||||||
|
|
||||||
|
error: casting float literal to `f32` is unnecessary
|
||||||
|
--> $DIR/unnecessary_cast_fixable.rs:14:5
|
||||||
|
|
|
||||||
|
LL | 100. as f32;
|
||||||
|
| ^^^^^^^^^^^ help: try: `100_f32`
|
||||||
|
|
||||||
|
error: casting float literal to `f64` is unnecessary
|
||||||
|
--> $DIR/unnecessary_cast_fixable.rs:15:5
|
||||||
|
|
|
||||||
|
LL | 100. as f64;
|
||||||
|
| ^^^^^^^^^^^ help: try: `100_f64`
|
||||||
|
|
||||||
error: casting integer literal to `u32` is unnecessary
|
error: casting integer literal to `u32` is unnecessary
|
||||||
--> $DIR/unnecessary_cast_fixable.rs:25:5
|
--> $DIR/unnecessary_cast_fixable.rs:27:5
|
||||||
|
|
|
|
||||||
LL | 1 as u32;
|
LL | 1 as u32;
|
||||||
| ^^^^^^^^ help: try: `1_u32`
|
| ^^^^^^^^ help: try: `1_u32`
|
||||||
|
|
||||||
error: casting integer literal to `i32` is unnecessary
|
error: casting integer literal to `i32` is unnecessary
|
||||||
--> $DIR/unnecessary_cast_fixable.rs:26:5
|
--> $DIR/unnecessary_cast_fixable.rs:28:5
|
||||||
|
|
|
|
||||||
LL | 0x10 as i32;
|
LL | 0x10 as i32;
|
||||||
| ^^^^^^^^^^^ help: try: `0x10_i32`
|
| ^^^^^^^^^^^ help: try: `0x10_i32`
|
||||||
|
|
||||||
error: casting integer literal to `usize` is unnecessary
|
error: casting integer literal to `usize` is unnecessary
|
||||||
--> $DIR/unnecessary_cast_fixable.rs:27:5
|
--> $DIR/unnecessary_cast_fixable.rs:29:5
|
||||||
|
|
|
|
||||||
LL | 0b10 as usize;
|
LL | 0b10 as usize;
|
||||||
| ^^^^^^^^^^^^^ help: try: `0b10_usize`
|
| ^^^^^^^^^^^^^ help: try: `0b10_usize`
|
||||||
|
|
||||||
error: casting integer literal to `u16` is unnecessary
|
error: casting integer literal to `u16` is unnecessary
|
||||||
--> $DIR/unnecessary_cast_fixable.rs:28:5
|
--> $DIR/unnecessary_cast_fixable.rs:30:5
|
||||||
|
|
|
|
||||||
LL | 0o73 as u16;
|
LL | 0o73 as u16;
|
||||||
| ^^^^^^^^^^^ help: try: `0o73_u16`
|
| ^^^^^^^^^^^ help: try: `0o73_u16`
|
||||||
|
|
||||||
error: casting integer literal to `u32` is unnecessary
|
error: casting integer literal to `u32` is unnecessary
|
||||||
--> $DIR/unnecessary_cast_fixable.rs:29:5
|
--> $DIR/unnecessary_cast_fixable.rs:31:5
|
||||||
|
|
|
|
||||||
LL | 1_000_000_000 as u32;
|
LL | 1_000_000_000 as u32;
|
||||||
| ^^^^^^^^^^^^^^^^^^^^ help: try: `1_000_000_000_u32`
|
| ^^^^^^^^^^^^^^^^^^^^ help: try: `1_000_000_000_u32`
|
||||||
|
|
||||||
error: casting float literal to `f64` is unnecessary
|
error: casting float literal to `f64` is unnecessary
|
||||||
--> $DIR/unnecessary_cast_fixable.rs:31:5
|
--> $DIR/unnecessary_cast_fixable.rs:33:5
|
||||||
|
|
|
|
||||||
LL | 1.0 as f64;
|
LL | 1.0 as f64;
|
||||||
| ^^^^^^^^^^ help: try: `1.0_f64`
|
| ^^^^^^^^^^ help: try: `1.0_f64`
|
||||||
|
|
||||||
error: casting float literal to `f32` is unnecessary
|
error: casting float literal to `f32` is unnecessary
|
||||||
--> $DIR/unnecessary_cast_fixable.rs:32:5
|
--> $DIR/unnecessary_cast_fixable.rs:34:5
|
||||||
|
|
|
|
||||||
LL | 0.5 as f32;
|
LL | 0.5 as f32;
|
||||||
| ^^^^^^^^^^ help: try: `0.5_f32`
|
| ^^^^^^^^^^ help: try: `0.5_f32`
|
||||||
|
|
||||||
error: casting integer literal to `i32` is unnecessary
|
error: casting integer literal to `i32` is unnecessary
|
||||||
--> $DIR/unnecessary_cast_fixable.rs:36:13
|
--> $DIR/unnecessary_cast_fixable.rs:38:13
|
||||||
|
|
|
|
||||||
LL | let _ = -1 as i32;
|
LL | let _ = -1 as i32;
|
||||||
| ^^^^^^^^^ help: try: `-1_i32`
|
| ^^^^^^^^^ help: try: `-1_i32`
|
||||||
|
|
||||||
error: casting float literal to `f32` is unnecessary
|
error: casting float literal to `f32` is unnecessary
|
||||||
--> $DIR/unnecessary_cast_fixable.rs:37:13
|
--> $DIR/unnecessary_cast_fixable.rs:39:13
|
||||||
|
|
|
|
||||||
LL | let _ = -1.0 as f32;
|
LL | let _ = -1.0 as f32;
|
||||||
| ^^^^^^^^^^^ help: try: `-1.0_f32`
|
| ^^^^^^^^^^^ help: try: `-1.0_f32`
|
||||||
|
|
||||||
error: aborting due to 15 previous errors
|
error: aborting due to 17 previous errors
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue