Module rustc_mir::build::matches[][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?

Code related to match expressions. These are sufficiently complex to warrant their own module and submodules. :) This main module includes the high-level algorithm, the submodules contain the details.

Re-exports

use build::BlockAnd;
use build::BlockAndExtension;
use build::Builder;
use build::GuardFrame;
use build::GuardFrameLocal;
use build::LocalsForNode;
use build::ForGuard;
use build::ForGuard::OutsideGuard;
use build::ForGuard::RefWithinGuard;
use build::ForGuard::ValWithinGuard;
use rustc_data_structures::fx::FxHashMap;
use rustc_data_structures::fx::FxHashMap;
use rustc_data_structures::bitvec::BitVector;
use rustc::ty;
use rustc::ty::Ty;
use rustc::mir::*;
use rustc::hir;
use hair::*;
use syntax::ast::Name;
use syntax::ast::NodeId;
use syntax_pos::Span;

Modules

simplify [
Experimental
]

Simplifying Candidates

test [
Experimental
]
util [
Experimental
]

Structs

ArmBlocks [
Experimental
]

List of blocks for each arm (and potentially other metadata in the future).

ArmHasGuard [
Experimental
]

ArmHasGuard is isomorphic to a boolean flag. It indicates whether a match arm has a guard expression attached to it.

Binding [
Experimental
]
Candidate [
Experimental
]
MatchPair [
Experimental
]
Test [
Experimental
]

Enums

TestKind [
Experimental
]