From: mcarton Date: Wed, 8 Jun 2016 10:21:24 +0000 (+0200) Subject: Rustup to *1.11.0-nightly (763f9234b 2016-06-06)* X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=3415a18febb8d8afe6de9f462fee953e979a88a9;p=rust.git Rustup to *1.11.0-nightly (763f9234b 2016-06-06)* --- diff --git a/clippy_lints/src/misc.rs b/clippy_lints/src/misc.rs index 53f4c972644..c283dc69b99 100644 --- a/clippy_lints/src/misc.rs +++ b/clippy_lints/src/misc.rs @@ -6,6 +6,7 @@ use rustc::ty; use rustc_const_eval::EvalHint::ExprTypeChecked; use rustc_const_eval::eval_const_expr_partial; +use rustc_const_math::ConstFloat; use syntax::codemap::{Span, Spanned, ExpnFormat}; use syntax::ptr::P; use utils::{ @@ -182,7 +183,26 @@ fn check_expr(&mut self, cx: &LateContext, expr: &Expr) { fn is_allowed(cx: &LateContext, expr: &Expr) -> bool { let res = eval_const_expr_partial(cx.tcx, expr, ExprTypeChecked, None); if let Ok(ConstVal::Float(val)) = res { - val == 0.0 || val == ::std::f64::INFINITY || val == ::std::f64::NEG_INFINITY + use std::cmp::Ordering; + + let zero = ConstFloat::FInfer { + f32: 0.0, + f64: 0.0, + }; + + let infinity = ConstFloat::FInfer { + f32: ::std::f32::INFINITY, + f64: ::std::f64::INFINITY, + }; + + let neg_infinity = ConstFloat::FInfer { + f32: ::std::f32::NEG_INFINITY, + f64: ::std::f64::NEG_INFINITY, + }; + + val.try_cmp(zero) == Ok(Ordering::Equal) + || val.try_cmp(infinity) == Ok(Ordering::Equal) + || val.try_cmp(neg_infinity) == Ok(Ordering::Equal) } else { false }