Module rustc::middle::region[][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?

This file builds up the ScopeTree, which describes the parent links in the region hierarchy.

For more information about how MIR-based region-checking works, see the rustc guide.

Re-exports

use ich::StableHashingContext;
use ich::NodeIdHashingMode;
use util::nodemap::FxHashMap;
use util::nodemap::FxHashMap;
use util::nodemap::FxHashSet;
use util::nodemap::FxHashSet;
use ty;
use std::fmt;
use std::mem;
use rustc_data_structures::sync::Lrc;
use syntax::codemap;
use syntax::ast;
use syntax_pos::Span;
use syntax_pos::DUMMY_SP;
use ty::TyCtxt;
use ty::query::Providers;
use hir;
use hir::def_id::DefId;
use hir::intravisit;
use hir::intravisit::Visitor;
use hir::intravisit::NestedVisitorMap;
use hir::Block;
use hir::Arm;
use hir::Pat;
use hir::PatKind;
use hir::Stmt;
use hir::Expr;
use hir::Local;
use rustc_data_structures::indexed_vec::Idx;
use rustc_data_structures::stable_hasher::HashStable;
use rustc_data_structures::stable_hasher::StableHasher;
use rustc_data_structures::stable_hasher::StableHasherResult;

Structs

BlockRemainder [
Experimental
]

Represents a subscope of block for a binding that is introduced by block.stmts[first_statement_index]. Such subscopes represent a suffix of the block. Note that each subscope does not include the initializer expression, if any, for the statement indexed by first_statement_index.

Context [
Experimental
]
ExprLocatorVisitor [
Experimental
]
FirstStatementIndex [
Experimental
]
RegionResolutionVisitor [
Experimental
]
Scope [
Experimental
]

Scope represents a statically-describable scope that can be used to bound the lifetime/region for values.

ScopeTree [
Experimental
]

The region scope tree encodes information about region relationships.

Enums

ScopeData [
Experimental
]

Constants

SCOPE_DATA_ARGUMENTS [
Experimental
]
SCOPE_DATA_CALLSITE [
Experimental
]
SCOPE_DATA_DESTRUCTION [
Experimental
]
SCOPE_DATA_NODE [
Experimental
]
SCOPE_DATA_REMAINDER_MAX [
Experimental
]

Functions

provide [
Experimental
]
record_var_lifetime [
Experimental
]

Records the lifetime of a local variable as cx.var_parent

region_scope_tree [
Experimental
]
resolve_arm [
Experimental
]
resolve_block [
Experimental
]
resolve_expr [
Experimental
]
resolve_local [
Experimental
]
resolve_pat [
Experimental
]
resolve_stmt [
Experimental
]

Type Definitions

ScopeDepth [
Experimental
]