Skip to main content

Module known_panics_lint

Module known_panics_lint 

Source
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ยง

CanConstProp ๐Ÿ”’
A visitor that determines locals in a MIR body that can be const propagated
ConstPropagator ๐Ÿ”’
Visits MIR nodes, performs const propagation and runs lint checks as it goes
KnownPanicsLint ๐Ÿ”’

Enumsยง

ConstPropMode ๐Ÿ”’
The mode that ConstProp is allowed to run in for a given Local.
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.