use rustc::lint::*;
-use rustc::middle::const_eval::EvalHint::ExprTypeChecked;
-use rustc::middle::const_eval::{eval_const_expr_partial, ConstVal};
+use rustc::middle::const_val::ConstVal;
use rustc::ty::TyArray;
+use rustc_const_eval::EvalHint::ExprTypeChecked;
+use rustc_const_eval::eval_const_expr_partial;
+use rustc_const_math::ConstInt;
use rustc_front::hir::*;
-use rustc_const_eval::ConstInt;
use syntax::ast::RangeLimits;
use utils;
use rustc::lint::*;
-use rustc::middle::const_eval::lookup_const_by_id;
use rustc::middle::def::{Def, PathResolution};
+use rustc_const_eval::lookup_const_by_id;
use rustc_front::hir::*;
use rustc_front::util::is_comparison_binop;
use syntax::ast::LitKind;
use syntax::codemap::Span;
-
use utils::span_lint;
/// **What it does:** This lint checks for incompatible bit masks in comparisons.
#![allow(cast_possible_truncation)]
use rustc::lint::LateContext;
-use rustc::middle::const_eval::lookup_const_by_id;
use rustc::middle::def::{Def, PathResolution};
+use rustc_const_eval::lookup_const_by_id;
+use rustc_const_math::{ConstInt, ConstUsize, ConstIsize};
use rustc_front::hir::*;
-use rustc_const_eval::{ConstInt, ConstUsize, ConstIsize};
use std::cmp::Ordering::{self, Equal};
use std::cmp::PartialOrd;
use std::hash::{Hash, Hasher};
//! lint on C-like enums that are `repr(isize/usize)` and have values that don't fit into an `i32`
use rustc::lint::*;
-use syntax::attr::*;
+use rustc::middle::const_val::ConstVal;
+use rustc_const_math::*;
use rustc_front::hir::*;
-use rustc::middle::const_eval::{ConstVal, EvalHint, eval_const_expr_partial};
+use syntax::attr::*;
use utils::span_lint;
/// **What it does:** Lints on C-like enums that are `repr(isize/usize)` and have values that don't fit into an `i32`.
use rustc_front::hir::*;
use syntax::codemap::Span;
use utils::{span_lint, snippet, in_macro};
-use rustc_const_eval::ConstInt;
+use rustc_const_math::ConstInt;
/// **What it does:** This lint checks for identity operations, e.g. `x + 0`.
///
extern crate rustc_plugin;
extern crate rustc_const_eval;
+extern crate rustc_const_math;
use rustc_plugin::Registry;
pub mod consts;
use reexport::*;
use rustc::front::map::Node::NodeBlock;
use rustc::lint::*;
-use rustc::middle::const_eval::EvalHint::ExprTypeChecked;
-use rustc::middle::const_eval::{ConstVal, eval_const_expr_partial};
+use rustc::middle::const_val::ConstVal;
use rustc::middle::def::Def;
use rustc::middle::region::CodeExtent;
use rustc::ty;
+use rustc_const_eval::EvalHint::ExprTypeChecked;
+use rustc_const_eval::eval_const_expr_partial;
use rustc_front::hir::*;
use rustc_front::intravisit::{Visitor, walk_expr, walk_block, walk_decl};
use std::borrow::Cow;
use rustc::lint::*;
-use rustc::middle::const_eval::EvalHint::ExprTypeChecked;
-use rustc::middle::const_eval::{eval_const_expr_partial, ConstVal};
+use rustc::middle::const_val::ConstVal;
use rustc::ty;
+use rustc_const_eval::EvalHint::ExprTypeChecked;
+use rustc_const_eval::eval_const_expr_partial;
+use rustc_const_math::ConstInt;
use rustc_front::hir::*;
-use rustc_const_eval::ConstInt;
use std::cmp::Ordering;
use syntax::ast::LitKind;
use syntax::codemap::Span;
use rustc::lint::*;
-use rustc::middle::const_eval::EvalHint::ExprTypeChecked;
-use rustc::middle::const_eval::{ConstVal, eval_const_expr_partial};
+use rustc::middle::const_val::ConstVal;
use rustc::middle::cstore::CrateStore;
use rustc::ty::subst::{Subst, TypeSpace};
use rustc::ty;
+use rustc_const_eval::EvalHint::ExprTypeChecked;
+use rustc_const_eval::eval_const_expr_partial;
use rustc_front::hir::*;
use std::borrow::Cow;
use std::fmt;
use reexport::*;
use rustc::lint::*;
-use rustc::middle::const_eval::ConstVal::Float;
-use rustc::middle::const_eval::EvalHint::ExprTypeChecked;
-use rustc::middle::const_eval::eval_const_expr_partial;
+use rustc::middle::const_val::ConstVal;
use rustc::ty;
+use rustc_const_eval::EvalHint::ExprTypeChecked;
+use rustc_const_eval::eval_const_expr_partial;
use rustc_front::hir::*;
use rustc_front::intravisit::FnKind;
use rustc_front::util::{is_comparison_binop, binop_to_string};
fn is_allowed(cx: &LateContext, expr: &Expr) -> bool {
let res = eval_const_expr_partial(cx.tcx, expr, ExprTypeChecked, None);
- if let Ok(Float(val)) = res {
+ if let Ok(ConstVal::Float(val)) = res {
val == 0.0 || val == ::std::f64::INFINITY || val == ::std::f64::NEG_INFINITY
} else {
false
use regex_syntax;
use rustc::lint::*;
-use rustc::middle::const_eval::EvalHint::ExprTypeChecked;
-use rustc::middle::const_eval::{eval_const_expr_partial, ConstVal};
+use rustc::middle::const_val::ConstVal;
+use rustc_const_eval::EvalHint::ExprTypeChecked;
+use rustc_const_eval::eval_const_expr_partial;
use rustc_front::hir::*;
use std::collections::HashSet;
use std::error::Error;
use reexport::*;
use rustc::lint::*;
-use rustc::middle::{const_eval, def};
+use rustc::middle::def;
use rustc::ty;
use rustc_front::hir::*;
use rustc_front::intravisit::{FnKind, Visitor, walk_ty};
}
fn detect_extreme_expr<'a>(cx: &LateContext, expr: &'a Expr) -> Option<ExtremeExpr<'a>> {
- use rustc::middle::const_eval::EvalHint::ExprTypeChecked;
- use types::ExtremeType::*;
- use rustc::middle::const_eval::ConstVal::*;
+ use rustc::middle::const_val::ConstVal::*;
+ use rustc_const_math::*;
+ use rustc_const_eval::EvalHint::ExprTypeChecked;
use rustc_const_eval::*;
+ use types::ExtremeType::*;
let ty = &cx.tcx.expr_ty(expr).sty;
_ => return None,
};
- let cv = match const_eval::eval_const_expr_partial(cx.tcx, expr, ExprTypeChecked, None) {
+ let cv = match eval_const_expr_partial(cx.tcx, expr, ExprTypeChecked, None) {
Ok(val) => val,
Err(_) => return None,
};
#![feature(rustc_private)]
extern crate clippy;
-extern crate syntax;
extern crate rustc;
-extern crate rustc_front;
extern crate rustc_const_eval;
+extern crate rustc_const_math;
+extern crate rustc_front;
+extern crate syntax;
+use clippy::consts::{constant_simple, Constant, FloatWidth};
+use rustc_const_math::ConstInt;
use rustc_front::hir::*;
-use rustc_const_eval::ConstInt;
+use syntax::ast::{LitIntType, LitKind, StrStyle};
+use syntax::codemap::{Spanned, COMMAND_LINE_SP};
use syntax::parse::token::InternedString;
use syntax::ptr::P;
-use syntax::codemap::{Spanned, COMMAND_LINE_SP};
-
-use syntax::ast::LitKind;
-use syntax::ast::LitIntType;
-use syntax::ast::StrStyle;
-
-use clippy::consts::{constant_simple, Constant, FloatWidth};
fn spanned<T>(t: T) -> Spanned<T> {
Spanned{ node: t, span: COMMAND_LINE_SP }