Module rustc_mir::borrow_check::nll[][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 borrow_check::borrow_set::BorrowSet;
use borrow_check::location::LocationTable;
use dataflow::move_paths::MoveData;
use dataflow::FlowAtLocation;
use dataflow::MaybeInitializedPlaces;
use rustc::hir::def_id::DefId;
use rustc::infer::InferCtxt;
use rustc::mir::ClosureOutlivesSubject;
use rustc::mir::ClosureRegionRequirements;
use rustc::mir::Mir;
use rustc::ty;
use rustc::ty::RegionKind;
use rustc::ty::RegionVid;
use rustc::util::nodemap::FxHashMap;
use std::collections::BTreeSet;
use std::fmt::Debug;
use std::io;
use std::path::PathBuf;
use transform::MirSource;
use util::liveness::LivenessResults;
use util::liveness::LocalSet;
use self::mir_util::PassWhere;
use util as mir_util;
use util::pretty;
use util::pretty::ALIGN;
use self::facts::AllFacts;
use self::region_infer::RegionInferenceContext;
use self::universal_regions::UniversalRegions;

Modules

constraint_generation [
Experimental
]
explain_borrow [
Experimental
]
facts [
Experimental
]
region_infer [
Experimental
]
renumber [
Experimental
]
subtype_constraint_generation [
Experimental
]
type_check [
Experimental
]

This pass type-checks the MIR to ensure it is not broken.

universal_regions [
Experimental
]

Code to extract the universally quantified regions declared on a function and the relationships between them. For example:

Traits

ToRegionVid [
Experimental
]

Right now, we piggy back on the ReVar to store our NLL inference regions. These are indexed with RegionVid. This method will assert that the region is a ReVar and extract its internal index. This is reasonable because in our MIR we replace all universal regions with inference variables.

Functions

compute_regions [
Experimental
]

Computes the (non-lexical) regions from the input MIR.

dump_annotation [
Experimental
]
dump_mir_results [
Experimental
]
for_each_region_constraint [
Experimental
]
live_variable_set [
Experimental
]
replace_regions_in_mir [
Experimental
]

Rewrites the regions in the MIR to use NLL variables, also scraping out the set of universal regions (e.g., region parameters) declared on the function. That set will need to be given to compute_regions.