Skip to content

Commit 4bb2d61

Browse files
authored
Merge pull request #1929 from Frederick888/fix-1928
Try to fix #1928
2 parents 21a46c2 + 4de3716 commit 4bb2d61

File tree

1 file changed

+28
-10
lines changed

1 file changed

+28
-10
lines changed

clippy_lints/src/misc.rs

+28-10
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use utils::{get_item_name, get_parent_expr, implements_trait, in_macro, is_integ
1212
span_lint, span_lint_and_then, walk_ptrs_ty, last_path_segment, iter_input_pats, in_constant,
1313
match_trait_method, paths};
1414
use utils::sugg::Sugg;
15-
use syntax::ast::{LitKind, CRATE_NODE_ID};
15+
use syntax::ast::{LitKind, CRATE_NODE_ID, FloatTy};
1616

1717
/// **What it does:** Checks for function arguments and let bindings denoted as `ref`.
1818
///
@@ -403,23 +403,41 @@ fn is_allowed(cx: &LateContext, expr: &Expr) -> bool {
403403
let res = ConstContext::new(cx.tcx, cx.param_env.and(substs), cx.tables).eval(expr);
404404
if let Ok(ConstVal::Float(val)) = res {
405405
use std::cmp::Ordering;
406-
match val {
407-
val @ ConstFloat::F32(_) => {
408-
let zero = ConstFloat::F32(0.0);
406+
match val.ty {
407+
FloatTy::F32 => {
408+
let zero = ConstFloat {
409+
ty: FloatTy::F32,
410+
bits: 0.0f32.to_bits() as u128,
411+
};
409412

410-
let infinity = ConstFloat::F32(::std::f32::INFINITY);
413+
let infinity = ConstFloat {
414+
ty: FloatTy::F32,
415+
bits: ::std::f32::INFINITY.to_bits() as u128,
416+
};
411417

412-
let neg_infinity = ConstFloat::F32(::std::f32::NEG_INFINITY);
418+
let neg_infinity = ConstFloat {
419+
ty: FloatTy::F32,
420+
bits: ::std::f32::NEG_INFINITY.to_bits() as u128,
421+
};
413422

414423
val.try_cmp(zero) == Ok(Ordering::Equal) || val.try_cmp(infinity) == Ok(Ordering::Equal) ||
415424
val.try_cmp(neg_infinity) == Ok(Ordering::Equal)
416425
},
417-
val @ ConstFloat::F64(_) => {
418-
let zero = ConstFloat::F64(0.0);
426+
FloatTy::F64 => {
427+
let zero = ConstFloat {
428+
ty: FloatTy::F64,
429+
bits: 0.0f64.to_bits() as u128,
430+
};
419431

420-
let infinity = ConstFloat::F64(::std::f64::INFINITY);
432+
let infinity = ConstFloat {
433+
ty: FloatTy::F64,
434+
bits: ::std::f64::INFINITY.to_bits() as u128,
435+
};
421436

422-
let neg_infinity = ConstFloat::F64(::std::f64::NEG_INFINITY);
437+
let neg_infinity = ConstFloat {
438+
ty: FloatTy::F64,
439+
bits: ::std::f64::NEG_INFINITY.to_bits() as u128,
440+
};
423441

424442
val.try_cmp(zero) == Ok(Ordering::Equal) || val.try_cmp(infinity) == Ok(Ordering::Equal) ||
425443
val.try_cmp(neg_infinity) == Ok(Ordering::Equal)

0 commit comments

Comments
 (0)