Trait rustc_mir::util::elaborate_drops::DropElaborator
[−]
[src]
pub trait DropElaborator<'a, 'tcx: 'a>: Debug {
type Path: Copy + Debug;
fn patch(&mut self) -> &mut MirPatch<'tcx>;
fn mir(&self) -> &'a Mir<'tcx>;
fn tcx(&self) -> TyCtxt<'a, 'tcx, 'tcx>;
fn param_env(&self) -> ParamEnv<'tcx>;
fn drop_style(&self, path: Self::Path, mode: DropFlagMode) -> DropStyle;
fn get_drop_flag(&mut self, path: Self::Path) -> Option<Operand<'tcx>>;
fn clear_drop_flag(
&mut self,
location: Location,
path: Self::Path,
mode: DropFlagMode
);
fn field_subpath(
&self,
path: Self::Path,
field: Field
) -> Option<Self::Path>;
fn deref_subpath(&self, path: Self::Path) -> Option<Self::Path>;
fn downcast_subpath(
&self,
path: Self::Path,
variant: usize
) -> Option<Self::Path>;
fn array_subpath(
&self,
path: Self::Path,
index: u32,
size: u32
) -> Option<Self::Path>;
}🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Associated Types
type Path: Copy + Debug
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Required Methods
fn patch(&mut self) -> &mut MirPatch<'tcx>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
fn mir(&self) -> &'a Mir<'tcx>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
fn tcx(&self) -> TyCtxt<'a, 'tcx, 'tcx>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
fn param_env(&self) -> ParamEnv<'tcx>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
fn drop_style(&self, path: Self::Path, mode: DropFlagMode) -> DropStyle
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
fn get_drop_flag(&mut self, path: Self::Path) -> Option<Operand<'tcx>>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
fn clear_drop_flag(
&mut self,
location: Location,
path: Self::Path,
mode: DropFlagMode
)
&mut self,
location: Location,
path: Self::Path,
mode: DropFlagMode
)
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
fn field_subpath(&self, path: Self::Path, field: Field) -> Option<Self::Path>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
fn deref_subpath(&self, path: Self::Path) -> Option<Self::Path>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
fn downcast_subpath(
&self,
path: Self::Path,
variant: usize
) -> Option<Self::Path>
&self,
path: Self::Path,
variant: usize
) -> Option<Self::Path>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
fn array_subpath(
&self,
path: Self::Path,
index: u32,
size: u32
) -> Option<Self::Path>
&self,
path: Self::Path,
index: u32,
size: u32
) -> Option<Self::Path>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?