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>