Skip to content

Commit

Permalink
Change f16 and f128 clippy stubs to be nonpanicking
Browse files Browse the repository at this point in the history
It turns out there is a bit of a circular dependency - I cannot add
anything to `core` because Clippy fails, and I can't actually add
correct Clippy implementations without new implementations from `core`.

Change some of the Clippy stubs from `unimplemented!` to success values
and leave a FIXME in their place to mitigate this.

Fixes <rust-lang#122587>
  • Loading branch information
tgross35 authored and yunji-yunji committed Mar 27, 2024
1 parent a0acd9e commit a148fc9
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions src/tools/clippy/clippy_lints/src/float_literal.rs
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,10 @@ impl<'tcx> LateLintPass<'tcx> for FloatLiteral {
LitFloatType::Unsuffixed => None,
};
let (is_whole, is_inf, mut float_str) = match fty {
FloatTy::F16 => unimplemented!("f16_f128"),
FloatTy::F16 => {
// FIXME(f16_f128): do a check like the others when parsing is available
return;
},
FloatTy::F32 => {
let value = sym_str.parse::<f32>().unwrap();

Expand All @@ -94,7 +97,10 @@ impl<'tcx> LateLintPass<'tcx> for FloatLiteral {

(value.fract() == 0.0, value.is_infinite(), formatter.format(value))
},
FloatTy::F128 => unimplemented!("f16_f128"),
FloatTy::F128 => {
// FIXME(f16_f128): do a check like the others when parsing is available
return;
},
};

if is_inf {
Expand Down Expand Up @@ -139,10 +145,11 @@ impl<'tcx> LateLintPass<'tcx> for FloatLiteral {
#[must_use]
fn max_digits(fty: FloatTy) -> u32 {
match fty {
FloatTy::F16 => unimplemented!("f16_f128"),
// FIXME(f16_f128): replace the magic numbers once `{f16,f128}::DIGITS` are available
FloatTy::F16 => 3,
FloatTy::F32 => f32::DIGITS,
FloatTy::F64 => f64::DIGITS,
FloatTy::F128 => unimplemented!("f16_f128"),
FloatTy::F128 => 33,
}
}

Expand Down

0 comments on commit a148fc9

Please sign in to comment.