mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-27 15:11:30 +00:00
rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const
This commit is contained in:
parent
b30cefc775
commit
2ea6ac5673
4 changed files with 16 additions and 16 deletions
|
@ -50,7 +50,7 @@ impl<'tcx> LateLintPass<'tcx> for UnportableVariant {
|
||||||
.tcx
|
.tcx
|
||||||
.const_eval_poly(def_id.to_def_id())
|
.const_eval_poly(def_id.to_def_id())
|
||||||
.ok()
|
.ok()
|
||||||
.map(|val| rustc_middle::mir::ConstantKind::from_value(val, ty));
|
.map(|val| rustc_middle::mir::Const::from_value(val, ty));
|
||||||
if let Some(Constant::Int(val)) = constant.and_then(|c| miri_to_const(cx, c)) {
|
if let Some(Constant::Int(val)) = constant.and_then(|c| miri_to_const(cx, c)) {
|
||||||
if let ty::Adt(adt, _) = ty.kind() {
|
if let ty::Adt(adt, _) = ty.kind() {
|
||||||
if adt.is_enum() {
|
if adt.is_enum() {
|
||||||
|
|
|
@ -37,14 +37,14 @@ fn all_ranges<'tcx>(cx: &LateContext<'tcx>, arms: &'tcx [Arm<'_>], ty: Ty<'tcx>)
|
||||||
Some(lhs) => constant(cx, cx.typeck_results(), lhs)?,
|
Some(lhs) => constant(cx, cx.typeck_results(), lhs)?,
|
||||||
None => {
|
None => {
|
||||||
let min_val_const = ty.numeric_min_val(cx.tcx)?;
|
let min_val_const = ty.numeric_min_val(cx.tcx)?;
|
||||||
miri_to_const(cx, mir::ConstantKind::from_ty_const(min_val_const, cx.tcx))?
|
miri_to_const(cx, mir::Const::from_ty_const(min_val_const, cx.tcx))?
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
let rhs_const = match rhs {
|
let rhs_const = match rhs {
|
||||||
Some(rhs) => constant(cx, cx.typeck_results(), rhs)?,
|
Some(rhs) => constant(cx, cx.typeck_results(), rhs)?,
|
||||||
None => {
|
None => {
|
||||||
let max_val_const = ty.numeric_max_val(cx.tcx)?;
|
let max_val_const = ty.numeric_max_val(cx.tcx)?;
|
||||||
miri_to_const(cx, mir::ConstantKind::from_ty_const(max_val_const, cx.tcx))?
|
miri_to_const(cx, mir::Const::from_ty_const(max_val_const, cx.tcx))?
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
let lhs_val = lhs_const.int_value(cx, ty)?;
|
let lhs_val = lhs_const.int_value(cx, ty)?;
|
||||||
|
|
|
@ -21,7 +21,7 @@ use std::iter;
|
||||||
/// A `LitKind`-like enum to fold constant `Expr`s into.
|
/// A `LitKind`-like enum to fold constant `Expr`s into.
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub enum Constant<'tcx> {
|
pub enum Constant<'tcx> {
|
||||||
Adt(rustc_middle::mir::ConstantKind<'tcx>),
|
Adt(rustc_middle::mir::Const<'tcx>),
|
||||||
/// A `String` (e.g., "abc").
|
/// A `String` (e.g., "abc").
|
||||||
Str(String),
|
Str(String),
|
||||||
/// A binary string (e.g., `b"abc"`).
|
/// A binary string (e.g., `b"abc"`).
|
||||||
|
@ -482,7 +482,7 @@ impl<'a, 'tcx> ConstEvalLateContext<'a, 'tcx> {
|
||||||
.tcx
|
.tcx
|
||||||
.const_eval_resolve(self.param_env, mir::UnevaluatedConst::new(def_id, args), None)
|
.const_eval_resolve(self.param_env, mir::UnevaluatedConst::new(def_id, args), None)
|
||||||
.ok()
|
.ok()
|
||||||
.map(|val| rustc_middle::mir::ConstantKind::from_value(val, ty))?;
|
.map(|val| rustc_middle::mir::Const::from_value(val, ty))?;
|
||||||
let result = miri_to_const(self.lcx, result)?;
|
let result = miri_to_const(self.lcx, result)?;
|
||||||
self.source = ConstantSource::Constant;
|
self.source = ConstantSource::Constant;
|
||||||
Some(result)
|
Some(result)
|
||||||
|
@ -655,10 +655,10 @@ impl<'a, 'tcx> ConstEvalLateContext<'a, 'tcx> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn miri_to_const<'tcx>(lcx: &LateContext<'tcx>, result: mir::ConstantKind<'tcx>) -> Option<Constant<'tcx>> {
|
pub fn miri_to_const<'tcx>(lcx: &LateContext<'tcx>, result: mir::Const<'tcx>) -> Option<Constant<'tcx>> {
|
||||||
use rustc_middle::mir::ConstValue;
|
use rustc_middle::mir::ConstValue;
|
||||||
match result {
|
match result {
|
||||||
mir::ConstantKind::Val(ConstValue::Scalar(Scalar::Int(int)), _) => match result.ty().kind() {
|
mir::Const::Val(ConstValue::Scalar(Scalar::Int(int)), _) => match result.ty().kind() {
|
||||||
ty::Adt(adt_def, _) if adt_def.is_struct() => Some(Constant::Adt(result)),
|
ty::Adt(adt_def, _) if adt_def.is_struct() => Some(Constant::Adt(result)),
|
||||||
ty::Bool => Some(Constant::Bool(int == ScalarInt::TRUE)),
|
ty::Bool => Some(Constant::Bool(int == ScalarInt::TRUE)),
|
||||||
ty::Uint(_) | ty::Int(_) => Some(Constant::Int(int.assert_bits(int.size()))),
|
ty::Uint(_) | ty::Int(_) => Some(Constant::Int(int.assert_bits(int.size()))),
|
||||||
|
@ -671,11 +671,11 @@ pub fn miri_to_const<'tcx>(lcx: &LateContext<'tcx>, result: mir::ConstantKind<'t
|
||||||
ty::RawPtr(_) => Some(Constant::RawPtr(int.assert_bits(int.size()))),
|
ty::RawPtr(_) => Some(Constant::RawPtr(int.assert_bits(int.size()))),
|
||||||
_ => None,
|
_ => None,
|
||||||
},
|
},
|
||||||
mir::ConstantKind::Val(cv, _) if matches!(result.ty().kind(), ty::Ref(_, inner_ty, _) if matches!(inner_ty.kind(), ty::Str)) => {
|
mir::Const::Val(cv, _) if matches!(result.ty().kind(), ty::Ref(_, inner_ty, _) if matches!(inner_ty.kind(), ty::Str)) => {
|
||||||
let data = cv.try_get_slice_bytes_for_diagnostics(lcx.tcx)?;
|
let data = cv.try_get_slice_bytes_for_diagnostics(lcx.tcx)?;
|
||||||
String::from_utf8(data.to_owned()).ok().map(Constant::Str)
|
String::from_utf8(data.to_owned()).ok().map(Constant::Str)
|
||||||
}
|
}
|
||||||
mir::ConstantKind::Val(ConstValue::Indirect { alloc_id, offset: _ }, _) => {
|
mir::Const::Val(ConstValue::Indirect { alloc_id, offset: _ }, _) => {
|
||||||
let alloc = lcx.tcx.global_alloc(alloc_id).unwrap_memory();
|
let alloc = lcx.tcx.global_alloc(alloc_id).unwrap_memory();
|
||||||
match result.ty().kind() {
|
match result.ty().kind() {
|
||||||
ty::Adt(adt_def, _) if adt_def.is_struct() => Some(Constant::Adt(result)),
|
ty::Adt(adt_def, _) if adt_def.is_struct() => Some(Constant::Adt(result)),
|
||||||
|
@ -714,17 +714,17 @@ pub fn miri_to_const<'tcx>(lcx: &LateContext<'tcx>, result: mir::ConstantKind<'t
|
||||||
fn field_of_struct<'tcx>(
|
fn field_of_struct<'tcx>(
|
||||||
adt_def: ty::AdtDef<'tcx>,
|
adt_def: ty::AdtDef<'tcx>,
|
||||||
lcx: &LateContext<'tcx>,
|
lcx: &LateContext<'tcx>,
|
||||||
result: mir::ConstantKind<'tcx>,
|
result: mir::Const<'tcx>,
|
||||||
field: &Ident,
|
field: &Ident,
|
||||||
) -> Option<mir::ConstantKind<'tcx>> {
|
) -> Option<mir::Const<'tcx>> {
|
||||||
if let mir::ConstantKind::Val(result, ty) = result
|
if let mir::Const::Val(result, ty) = result
|
||||||
&& let Some(dc) = lcx.tcx.try_destructure_mir_constant_for_diagnostics((result, ty))
|
&& let Some(dc) = lcx.tcx.try_destructure_mir_constant_for_diagnostics((result, ty))
|
||||||
&& let Some(dc_variant) = dc.variant
|
&& let Some(dc_variant) = dc.variant
|
||||||
&& let Some(variant) = adt_def.variants().get(dc_variant)
|
&& let Some(variant) = adt_def.variants().get(dc_variant)
|
||||||
&& let Some(field_idx) = variant.fields.iter().position(|el| el.name == field.name)
|
&& let Some(field_idx) = variant.fields.iter().position(|el| el.name == field.name)
|
||||||
&& let Some(&(val, ty)) = dc.fields.get(field_idx)
|
&& let Some(&(val, ty)) = dc.fields.get(field_idx)
|
||||||
{
|
{
|
||||||
Some(mir::ConstantKind::Val(val, ty))
|
Some(mir::Const::Val(val, ty))
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
None
|
None
|
||||||
|
|
|
@ -97,7 +97,7 @@ use rustc_hir::{
|
||||||
use rustc_lexer::{tokenize, TokenKind};
|
use rustc_lexer::{tokenize, TokenKind};
|
||||||
use rustc_lint::{LateContext, Level, Lint, LintContext};
|
use rustc_lint::{LateContext, Level, Lint, LintContext};
|
||||||
use rustc_middle::hir::place::PlaceBase;
|
use rustc_middle::hir::place::PlaceBase;
|
||||||
use rustc_middle::mir::ConstantKind;
|
use rustc_middle::mir::Const;
|
||||||
use rustc_middle::ty::adjustment::{Adjust, Adjustment, AutoBorrow};
|
use rustc_middle::ty::adjustment::{Adjust, Adjustment, AutoBorrow};
|
||||||
use rustc_middle::ty::binding::BindingMode;
|
use rustc_middle::ty::binding::BindingMode;
|
||||||
use rustc_middle::ty::fast_reject::SimplifiedType;
|
use rustc_middle::ty::fast_reject::SimplifiedType;
|
||||||
|
@ -1510,7 +1510,7 @@ pub fn is_range_full(cx: &LateContext<'_>, expr: &Expr<'_>, container_path: Opti
|
||||||
&& let bnd_ty = subst.type_at(0)
|
&& let bnd_ty = subst.type_at(0)
|
||||||
&& let Some(min_val) = bnd_ty.numeric_min_val(cx.tcx)
|
&& let Some(min_val) = bnd_ty.numeric_min_val(cx.tcx)
|
||||||
&& let const_val = cx.tcx.valtree_to_const_val((bnd_ty, min_val.to_valtree()))
|
&& let const_val = cx.tcx.valtree_to_const_val((bnd_ty, min_val.to_valtree()))
|
||||||
&& let min_const_kind = ConstantKind::from_value(const_val, bnd_ty)
|
&& let min_const_kind = Const::from_value(const_val, bnd_ty)
|
||||||
&& let Some(min_const) = miri_to_const(cx, min_const_kind)
|
&& let Some(min_const) = miri_to_const(cx, min_const_kind)
|
||||||
&& let Some(start_const) = constant(cx, cx.typeck_results(), start)
|
&& let Some(start_const) = constant(cx, cx.typeck_results(), start)
|
||||||
{
|
{
|
||||||
|
@ -1526,7 +1526,7 @@ pub fn is_range_full(cx: &LateContext<'_>, expr: &Expr<'_>, container_path: Opti
|
||||||
&& let bnd_ty = subst.type_at(0)
|
&& let bnd_ty = subst.type_at(0)
|
||||||
&& let Some(max_val) = bnd_ty.numeric_max_val(cx.tcx)
|
&& let Some(max_val) = bnd_ty.numeric_max_val(cx.tcx)
|
||||||
&& let const_val = cx.tcx.valtree_to_const_val((bnd_ty, max_val.to_valtree()))
|
&& let const_val = cx.tcx.valtree_to_const_val((bnd_ty, max_val.to_valtree()))
|
||||||
&& let max_const_kind = ConstantKind::from_value(const_val, bnd_ty)
|
&& let max_const_kind = Const::from_value(const_val, bnd_ty)
|
||||||
&& let Some(max_const) = miri_to_const(cx, max_const_kind)
|
&& let Some(max_const) = miri_to_const(cx, max_const_kind)
|
||||||
&& let Some(end_const) = constant(cx, cx.typeck_results(), end)
|
&& let Some(end_const) = constant(cx, cx.typeck_results(), end)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue