Skip to main content

Module lint_tail_expr_drop_order

Module lint_tail_expr_drop_order 

Source

Re-exportsยง

use std::cell::RefCell; ๐Ÿ”’
use std::collections::hash_map; ๐Ÿ”’
use std::rc::Rc; ๐Ÿ”’
use itertools::Itertools as _; ๐Ÿ”’
use rustc_data_structures::fx::FxHashMap; ๐Ÿ”’
use rustc_data_structures::fx::FxHashSet; ๐Ÿ”’
use rustc_data_structures::fx::FxIndexMap; ๐Ÿ”’
use rustc_data_structures::unord::UnordMap; ๐Ÿ”’
use rustc_data_structures::unord::UnordSet; ๐Ÿ”’
use rustc_errors::formatting::DiagMessageAddArg; ๐Ÿ”’
use rustc_errors::Subdiagnostic; ๐Ÿ”’
use rustc_errors::msg; ๐Ÿ”’
use rustc_hir::CRATE_HIR_ID; ๐Ÿ”’
use rustc_hir::def_id::LocalDefId; ๐Ÿ”’
use rustc_index::bit_set::MixedBitSet; ๐Ÿ”’
use rustc_index::IndexSlice; ๐Ÿ”’
use rustc_index::IndexVec; ๐Ÿ”’
use rustc_lint_defs::LintId; ๐Ÿ”’
use rustc_lint_defs::builtin::TAIL_EXPR_DROP_ORDER; ๐Ÿ”’
use rustc_macros::Diagnostic; ๐Ÿ”’
use rustc_macros::Subdiagnostic; ๐Ÿ”’
use rustc_middle::mir; ๐Ÿ”’
use rustc_middle::mir::BasicBlock; ๐Ÿ”’
use rustc_middle::mir::Body; ๐Ÿ”’
use rustc_middle::mir::ClearCrossCrate; ๐Ÿ”’
use rustc_middle::mir::Local; ๐Ÿ”’
use rustc_middle::mir::Location; ๐Ÿ”’
use rustc_middle::mir::MirDumper; ๐Ÿ”’
use rustc_middle::mir::Place; ๐Ÿ”’
use rustc_middle::mir::StatementKind; ๐Ÿ”’
use rustc_middle::mir::TerminatorKind; ๐Ÿ”’
use rustc_middle::ty::significant_drop_order::extract_component_with_significant_dtor; ๐Ÿ”’
use rustc_middle::ty::significant_drop_order::ty_dtor_span; ๐Ÿ”’
use rustc_middle::ty; ๐Ÿ”’
use rustc_middle::ty::TyCtxt; ๐Ÿ”’
use rustc_mir_dataflow::impls::MaybeInitializedPlaces; ๐Ÿ”’
use rustc_mir_dataflow::move_paths::LookupResult; ๐Ÿ”’
use rustc_mir_dataflow::move_paths::MoveData; ๐Ÿ”’
use rustc_mir_dataflow::move_paths::MovePathIndex; ๐Ÿ”’
use rustc_mir_dataflow::Analysis; ๐Ÿ”’
use rustc_mir_dataflow::MaybeReachable; ๐Ÿ”’
use rustc_mir_dataflow::ResultsCursor; ๐Ÿ”’
use rustc_span::DUMMY_SP; ๐Ÿ”’
use rustc_span::Span; ๐Ÿ”’
use rustc_span::Symbol; ๐Ÿ”’
use rustc_span::bug; ๐Ÿ”’
use tracing::debug; ๐Ÿ”’

Structsยง

DestructorLabel ๐Ÿ”’
DropsReachable ๐Ÿ”’
LocalLabel ๐Ÿ”’
TailExprDropOrderLint ๐Ÿ”’

Enumsยง

MovePathIndexAtBlock ๐Ÿ”’
Cache entry of drop at a BasicBlock

Functionsยง

assign_observables_names ๐Ÿ”’
Assign names for anonymous or temporary values for diagnosis
collect_user_names ๐Ÿ”’
Extract binding names if available for diagnosis
place_descendent_of_bids ๐Ÿ”’
Check if a moved place at idx is a part of a BID. The use of this check is that we will consider drops on these as a drop of the overall BID and, thus, we can exclude it from the diagnosis.
place_has_common_prefix ๐Ÿ”’
run_lint ๐Ÿ”’
The core of the lint tail-expr-drop-order