Struct rustc_mir::hair::pattern::_match::MatchCheckCtxt [−][src]
pub struct MatchCheckCtxt<'a, 'tcx: 'a> {
pub tcx: TyCtxt<'a, 'tcx, 'tcx>,
pub module: DefId,
pub pattern_arena: &'a TypedArena<Pattern<'tcx>>,
pub byte_array_map: FxHashMap<*const Pattern<'tcx>, Vec<&'a Pattern<'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?
Fields
tcx: 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?
module: DefId
🔬 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?
The module in which the match occurs. This is necessary for
checking inhabited-ness of types because whether a type is (visibly)
inhabited can depend on whether it was defined in the current module or
not. eg. struct Foo { _private: ! } cannot be seen to be empty
outside it's module and should not be matchable with an empty match
statement.
pattern_arena: &'a TypedArena<Pattern<'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?
byte_array_map: FxHashMap<*const Pattern<'tcx>, Vec<&'a Pattern<'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?
Methods
impl<'a, 'tcx> MatchCheckCtxt<'a, 'tcx>[src]
impl<'a, 'tcx> MatchCheckCtxt<'a, 'tcx>pub fn create_and_enter<F, R>(
tcx: TyCtxt<'a, 'tcx, 'tcx>,
module: DefId,
f: F
) -> R where
F: for<'b> FnOnce(MatchCheckCtxt<'b, 'tcx>) -> R, [src]
pub fn create_and_enter<F, R>(
tcx: TyCtxt<'a, 'tcx, 'tcx>,
module: DefId,
f: F
) -> R where
F: for<'b> FnOnce(MatchCheckCtxt<'b, 'tcx>) -> R, 🔬 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 lower_byte_str_pattern<'p>(
&mut self,
pat: &'p Pattern<'tcx>
) -> Vec<&'p Pattern<'tcx>> where
'a: 'p, [src]
fn lower_byte_str_pattern<'p>(
&mut self,
pat: &'p Pattern<'tcx>
) -> Vec<&'p Pattern<'tcx>> where
'a: 'p, 🔬 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 is_uninhabited(&self, ty: Ty<'tcx>) -> bool[src]
fn is_uninhabited(&self, ty: Ty<'tcx>) -> bool🔬 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 is_non_exhaustive_enum(&self, ty: Ty<'tcx>) -> bool[src]
fn is_non_exhaustive_enum(&self, ty: Ty<'tcx>) -> bool🔬 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 is_local(&self, ty: Ty<'tcx>) -> bool[src]
fn is_local(&self, ty: Ty<'tcx>) -> bool🔬 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 is_variant_uninhabited(
&self,
variant: &'tcx VariantDef,
substs: &'tcx Substs<'tcx>
) -> bool[src]
fn is_variant_uninhabited(
&self,
variant: &'tcx VariantDef,
substs: &'tcx Substs<'tcx>
) -> bool🔬 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?
Auto Trait Implementations
impl<'a, 'tcx> !Send for MatchCheckCtxt<'a, 'tcx>
impl<'a, 'tcx> !Send for MatchCheckCtxt<'a, 'tcx>impl<'a, 'tcx> !Sync for MatchCheckCtxt<'a, 'tcx>
impl<'a, 'tcx> !Sync for MatchCheckCtxt<'a, 'tcx>