Module rustc_mir::borrow_check [−][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 query borrow-checks the MIR to (further) ensure it is not broken.
Re-exports
use borrow_check::nll::region_infer::RegionCausalInfo; |
use borrow_check::nll::region_infer::RegionInferenceContext; |
use rustc::hir; |
use rustc::hir::def_id::DefId; |
use rustc::hir::map::definitions::DefPathData; |
use rustc::infer::InferCtxt; |
use rustc::ty; |
use rustc::ty::ParamEnv; |
use rustc::ty::TyCtxt; |
use rustc::ty::maps::Providers; |
use rustc::lint::builtin::UNUSED_MUT; |
use rustc::mir::AggregateKind; |
use rustc::mir::BasicBlock; |
use rustc::mir::BorrowCheckResult; |
use rustc::mir::BorrowKind; |
use rustc::mir::ClearCrossCrate; |
use rustc::mir::Local; |
use rustc::mir::Location; |
use rustc::mir::Place; |
use rustc::mir::Mir; |
use rustc::mir::Mutability; |
use rustc::mir::Operand; |
use rustc::mir::Projection; |
use rustc::mir::ProjectionElem; |
use rustc::mir::Rvalue; |
use rustc::mir::Field; |
use rustc::mir::Statement; |
use rustc::mir::StatementKind; |
use rustc::mir::Terminator; |
use rustc::mir::TerminatorKind; |
use rustc_data_structures::control_flow_graph::dominators::Dominators; |
use rustc_data_structures::fx::FxHashSet; |
use rustc_data_structures::indexed_set::IdxSetBuf; |
use rustc_data_structures::indexed_vec::Idx; |
use rustc_data_structures::small_vec::SmallVec; |
use std::rc::Rc; |
use syntax_pos::Span; |
use dataflow::do_dataflow; |
use dataflow::DebugFormatted; |
use dataflow::FlowAtLocation; |
use dataflow::MoveDataParamEnv; |
use dataflow::DataflowResultsConsumer; |
use dataflow::MaybeInitializedPlaces; |
use dataflow::MaybeUninitializedPlaces; |
use dataflow::EverInitializedPlaces; |
use dataflow::MovingOutStatements; |
use dataflow::Borrows; |
use dataflow::indexes::BorrowIndex; |
use dataflow::move_paths::IllegalMoveOriginKind; |
use dataflow::move_paths::MoveError; |
use dataflow::move_paths::HasMoveData; |
use dataflow::move_paths::LookupResult; |
use dataflow::move_paths::MoveData; |
use dataflow::move_paths::MovePathIndex; |
use util::borrowck_errors::BorrowckErrors; |
use util::borrowck_errors::Origin; |
use util::collect_writes::FindAssignments; |
use std::iter; |
use self::borrow_set::BorrowSet; |
use self::borrow_set::BorrowData; |
use self::flows::Flows; |
use self::location::LocationTable; |
use self::prefixes::PrefixSet; |
use self::MutateMode::JustWrite; |
use self::MutateMode::WriteAndRead; |
use self::ShallowOrDeep::Deep; |
use self::ShallowOrDeep::Shallow; |
use self::ReadOrWrite::Activation; |
use self::ReadOrWrite::Read; |
use self::ReadOrWrite::Reservation; |
use self::ReadOrWrite::Write; |
Modules
borrow_set |
[ Experimental ]
|
error_reporting |
[ Experimental ]
|
flows |
[ Experimental ] Manages the dataflow bits required for borrowck. |
location |
[ Experimental ]
|
nll |
[ Experimental ]
|
place_ext |
[ Experimental ]
|
prefixes |
[ Experimental ] From the NLL RFC: "The deep [aka 'supporting'] prefixes for an place are formed by stripping away fields and derefs, except that we stop when we reach the deref of a shared reference. [...] " |
Structs
AccessErrorsReported |
[ Experimental ]
|
Context |
[ Experimental ]
|
MirBorrowckCtxt |
[ Experimental ]
|
RootPlace |
[ Experimental ]
|
Enums
ArtificialField |
[ Experimental ]
|
ContextKind |
[ Experimental ]
|
Control |
[ Experimental ]
|
InitializationRequiringAction |
[ Experimental ]
|
LocalMutationIsAllowed |
[ Experimental ] When checking permissions for a place access, this flag is used to indicate that an immutable local place can be mutated. |
MutateMode |
[ Experimental ]
|
NoMovePathFound |
[ Experimental ]
|
Overlap |
[ Experimental ] The degree of overlap between 2 places for borrow-checking. |
ReadKind |
[ Experimental ] Kind of read access to a value (For informational purposes only) |
ReadOrWrite |
[ Experimental ] Kind of access to a value: read or write (For informational purposes only) |
ShallowOrDeep |
[ Experimental ]
|
WriteKind |
[ Experimental ] Kind of write access to a value (For informational purposes only) |
Functions
do_mir_borrowck |
[ Experimental ]
|
mir_borrowck |
[ Experimental ]
|
provide |
[ Experimental ]
|