Skip to content

Commit

Permalink
[unnecessary_cast] Do not lint negative hexadecimal literals when c…
Browse files Browse the repository at this point in the history
…ast as float

Floats cannot be expressed as hexadecimal literals
  • Loading branch information
kraktus committed Oct 8, 2022
1 parent 2c8e473 commit 6f4546a
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 6 deletions.
3 changes: 0 additions & 3 deletions clippy_lints/src/casts/unnecessary_cast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,6 @@ pub(super) fn check<'tcx>(
lint_unnecessary_cast(cx, expr, literal_str, cast_from, cast_to);
return false;
},
LitKind::Int(_, LitIntType::Unsuffixed) | LitKind::Float(_, LitFloatType::Unsuffixed) => {
return false;
},
LitKind::Int(_, LitIntType::Signed(_) | LitIntType::Unsigned(_))
| LitKind::Float(_, LitFloatType::Suffixed(_))
if cast_from.kind() == cast_to.kind() =>
Expand Down
7 changes: 4 additions & 3 deletions clippy_utils/src/numeric_literal.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,13 @@ impl<'a> NumericLiteral<'a> {

#[must_use]
pub fn new(lit: &'a str, suffix: Option<&'a str>, float: bool) -> Self {
let unsigned_lit = lit.trim_start_matches('-');
// Determine delimiter for radix prefix, if present, and radix.
let radix = if lit.starts_with("0x") {
let radix = if unsigned_lit.starts_with("0x") {
Radix::Hexadecimal
} else if lit.starts_with("0b") {
} else if unsigned_lit.starts_with("0b") {
Radix::Binary
} else if lit.starts_with("0o") {
} else if unsigned_lit.starts_with("0o") {
Radix::Octal
} else {
Radix::Decimal
Expand Down
4 changes: 4 additions & 0 deletions tests/ui/unnecessary_cast.fixed
Original file line number Diff line number Diff line change
Expand Up @@ -111,4 +111,8 @@ mod fixable {

let _num = foo();
}

fn issue_9603() {
let _: f32 = -0x400 as f32;
}
}
4 changes: 4 additions & 0 deletions tests/ui/unnecessary_cast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,4 +111,8 @@ mod fixable {

let _num = foo() as f32;
}

fn issue_9603() {
let _: f32 = -0x400 as f32;
}
}

0 comments on commit 6f4546a

Please sign in to comment.