Module rustc_mir::hair::pattern::check_match[][src]

🔬 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?

Re-exports

use super::_match::MatchCheckCtxt;
use super::_match::Matrix;
use super::_match::expand_pattern;
use super::_match::is_useful;
use super::_match::Usefulness::*;
use super::_match::WitnessPreference::*;
use super::Pattern;
use super::PatternContext;
use super::PatternError;
use super::PatternKind;
use rustc::middle::expr_use_visitor::ConsumeMode;
use rustc::middle::expr_use_visitor::Delegate;
use rustc::middle::expr_use_visitor::ExprUseVisitor;
use rustc::middle::expr_use_visitor::LoanCause;
use rustc::middle::expr_use_visitor::MutateMode;
use rustc::middle::expr_use_visitor as euv;
use rustc::middle::mem_categorization::cmt_;
use rustc::middle::region;
use rustc::session::Session;
use rustc::ty;
use rustc::ty::Ty;
use rustc::ty::TyCtxt;
use rustc::ty::subst::Substs;
use rustc::lint;
use rustc_errors::DiagnosticBuilder;
use rustc::util::common::ErrorReported;
use rustc::hir::def::*;
use rustc::hir::def_id::DefId;
use rustc::hir::intravisit;
use rustc::hir::intravisit::Visitor;
use rustc::hir::intravisit::NestedVisitorMap;
use rustc::hir;
use rustc::hir::Pat;
use rustc::hir::PatKind;
use std::slice;
use syntax::ast;
use syntax::ptr::P;
use syntax::ptr::P;
use syntax_pos::Span;
use syntax_pos::DUMMY_SP;

Structs

AtBindingPatternVisitor [
Experimental
]
MatchVisitor [
Experimental
]
MutationChecker [
Experimental
]
OuterVisitor [
Experimental
]

Functions

check_arms [
Experimental
]
check_crate [
Experimental
]
check_exhaustive [
Experimental
]
check_for_bindings_named_the_same_as_variants [
Experimental
]
check_for_mutation_in_guard [
Experimental
]

Ensures that a pattern guard doesn't borrow by mutable reference or assign.

check_legality_of_bindings_in_at_patterns [
Experimental
]

Forbids bindings in @ patterns. This is necessary for memory safety, because of the way rvalues are handled in the borrow check. (See issue #14587.)

check_legality_of_move_bindings [
Experimental
]
check_match [
Experimental
]
create_e0004 [
Experimental
]
pat_is_catchall [
Experimental
]

Checks for common cases of "catchall" patterns that may not be intended as such.