Expand description
A lint that checks for known panics like overflows, division by zero, out-of-bound access etc. Uses const propagation to determine the values of operands during checks.
Re-exportsยง
use std::fmt::Debug;๐use std::fmt::Debug;๐use rustc_abi::BackendRepr;๐use rustc_abi::FieldIdx;๐use rustc_abi::HasDataLayout;๐use rustc_abi::Size;๐use rustc_abi::TargetDataLayout;๐use rustc_abi::VariantIdx;๐use rustc_attr_ir::find_attr;๐use rustc_const_eval::const_eval::DummyMachine;๐use rustc_const_eval::interpret::ImmTy;๐use rustc_const_eval::interpret::InterpCx;๐use rustc_const_eval::interpret::InterpResult;๐use rustc_const_eval::interpret::Projectable;๐use rustc_const_eval::interpret::Scalar;๐use rustc_const_eval::interpret::interp_ok;๐use rustc_data_structures::fx::FxHashSet;๐use rustc_hir::HirId;๐use rustc_hir::def::DefKind;๐use rustc_index::IndexVec;๐use rustc_index::bit_set::DenseBitSet;๐use rustc_lint_defs::builtin::UNCONDITIONAL_PANIC;๐use rustc_middle::mir::visit::MutatingUseContext;๐use rustc_middle::mir::visit::NonMutatingUseContext;๐use rustc_middle::mir::visit::PlaceContext;๐use rustc_middle::mir::visit::Visitor;๐use rustc_middle::ty::layout::LayoutError;๐use rustc_middle::ty::layout::LayoutOf;๐use rustc_middle::ty::layout::LayoutOfHelpers;๐use rustc_middle::ty::layout::TyAndLayout;๐use rustc_middle::ty;๐use rustc_middle::ty::ConstInt;๐use rustc_middle::ty::GenericArgKind;๐use rustc_middle::ty::GenericParamDefKind;๐use rustc_middle::ty::ScalarInt;๐use rustc_middle::ty::Ty;๐use rustc_middle::ty::TyCtxt;๐use rustc_middle::ty::TypeVisitableExt;๐use rustc_middle::ty::Unnormalized;๐use rustc_span::Span;๐use rustc_span::bug;๐use tracing::debug;๐use tracing::instrument;๐use tracing::instrument;๐use tracing::trace;๐use crate::diagnostics::AssertLint;๐use crate::diagnostics::AssertLintKind;๐use crate::diagnostics::ConstNIsZero;๐use rustc_middle::mir::*;๐
Structsยง
- CanConst
Prop ๐ - A visitor that determines locals in a MIR body that can be const propagated
- Const
Propagator ๐ - Visits MIR nodes, performs const propagation and runs lint checks as it goes
- Known
Panics ๐Lint
Enumsยง
- Const
Prop ๐Mode - The mode that
ConstPropis allowed to run in for a givenLocal. - Value ๐
Constantsยง
- MAX_
ALLOC_ ๐LIMIT - The maximum number of bytes that weโll allocate space for a local or the return value. Needed for #66397, because otherwise we eval into large places and that can cause OOM or just Severely regress performance.