Skip to main content

Module elaborate_drop

Module elaborate_drop 

Source

Re-exportsΒ§

use std::fmt; πŸ”’
use std::iter; πŸ”’
use std::mem; πŸ”’
use itertools::Itertools; πŸ”’
use rustc_abi::FIRST_VARIANT; πŸ”’
use rustc_abi::FieldIdx; πŸ”’
use rustc_abi::VariantIdx; πŸ”’
use rustc_attr_ir::lang_items::LangItem; πŸ”’
use rustc_hir::CoroutineDesugaring; πŸ”’
use rustc_hir::CoroutineKind; πŸ”’
use rustc_index::Idx; πŸ”’
use rustc_middle::ty::adjustment::PointerCoercion; πŸ”’
use rustc_middle::ty::util::Discr; πŸ”’
use rustc_middle::ty::util::IntTypeExt; πŸ”’
use rustc_middle::ty; πŸ”’
use rustc_middle::ty::GenericArgs; πŸ”’
use rustc_middle::ty::Ty; πŸ”’
use rustc_middle::ty::TyCtxt; πŸ”’
use rustc_mir_dataflow::DropFlagState; πŸ”’
use rustc_span::DUMMY_SP; πŸ”’
use rustc_span::bug; πŸ”’
use rustc_span::dummy_spanned; πŸ”’
use rustc_span::span_bug; πŸ”’
use tracing::debug; πŸ”’
use tracing::instrument; πŸ”’
use tracing::instrument; πŸ”’
use crate::coroutine::CTX_ARG; πŸ”’
use crate::patch::MirPatch; πŸ”’
use rustc_middle::mir::*; πŸ”’

StructsΒ§

DropCtxt πŸ”’

EnumsΒ§

DropFlagMode πŸ”’
Which drop flags to affect/check with an operation.
DropStyle πŸ”’
Describes how/if a value should be dropped.
Unwind πŸ”’
Describes if unwinding is necessary and where to unwind to if a panic occurs.

TraitsΒ§

DropElaborator πŸ”’

FunctionsΒ§

elaborate_drop πŸ”’
β€œElaborates” a drop of place/path and patches bb’s terminator to execute it.