Module rustc_borrowck::borrowck[][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?

See The Book chapter on the borrow checker for more details.

Re-exports

pub use self::LoanPathKind::*;
pub use self::LoanPathElem::*;
pub use self::bckerr_code::*;
pub use self::AliasableViolationKind::*;
pub use self::MovedValueUseKind::*;
use self::InteriorKind::*;
use rustc::hir::HirId;
use rustc::hir::map as hir_map;
use rustc::hir::map::blocks::FnLikeNode;
use rustc::cfg;
use rustc::middle::dataflow::DataFlowContext;
use rustc::middle::dataflow::BitwiseOperator;
use rustc::middle::dataflow::DataFlowOperator;
use rustc::middle::dataflow::KillFrom;
use rustc::middle::borrowck::BorrowCheckResult;
use rustc::hir::def_id::DefId;
use rustc::hir::def_id::LocalDefId;
use rustc::middle::expr_use_visitor as euv;
use rustc::middle::mem_categorization as mc;
use rustc::middle::mem_categorization::Categorization;
use rustc::middle::mem_categorization::ImmutabilityBlame;
use rustc::middle::region;
use rustc::middle::free_region::RegionRelations;
use rustc::ty;
use rustc::ty::Ty;
use rustc::ty::TyCtxt;
use rustc::ty::query::Providers;
use rustc_mir::util::borrowck_errors::BorrowckErrors;
use rustc_mir::util::borrowck_errors::Origin;
use rustc::util::nodemap::FxHashSet;
use rustc::util::nodemap::FxHashSet;
use std::cell::RefCell;
use std::fmt;
use std::rc::Rc;
use rustc_data_structures::sync::Lrc;
use std::hash::Hash;
use std::hash::Hasher;
use syntax::ast;
use syntax_pos::MultiSpan;
use syntax_pos::Span;
use errors::DiagnosticBuilder;
use errors::DiagnosticId;
use rustc::hir;
use rustc::hir::intravisit;
use rustc::hir::intravisit::Visitor;

Modules

check_loans [
Experimental
]
gather_loans [
Experimental
]
move_data [
Experimental
]

Data structures used for tracking moves. Please see the extensive comments in the section "Moves and initialization" in README.md.

unused [
Experimental
]

Structs

AnalysisData [
Experimental
]

Collection of conclusions determined via borrow checker analyses.

BckError [
Experimental
]
BorrowckCtxt [
Experimental
]
Loan [
Experimental
]

Record of a loan that was issued.

LoanDataFlowOperator [
Experimental
]
LoanPath [
Experimental
]

Enums

AliasableViolationKind [
Experimental
]
InteriorKind [
Experimental
]
LoanPathElem [
Experimental
]
LoanPathKind [
Experimental
]
MovedValueUseKind [
Experimental
]
bckerr_code [
Experimental
]

Constants

DOWNCAST_PRINTED_OPERATOR [
Experimental
]

Traits

ToInteriorKind [
Experimental
]

Functions

borrowck [
Experimental
]
build_borrowck_dataflow_data [
Experimental
]
build_borrowck_dataflow_data_for_fn [
Experimental
]

Accessor for introspective clients inspecting AnalysisData and the BorrowckCtxt itself , e.g. the flowgraph visualizer.

check_crate [
Experimental
]
closure_to_block [
Experimental
]
opt_loan_path [
Experimental
]

Computes the LoanPath (if any) for a cmt. Note that this logic is somewhat duplicated in the method compute() found in gather_loans::restrictions, which allows it to share common loan path pieces as it traverses the CMT.

opt_loan_path_is_field [
Experimental
]
provide [
Experimental
]

Type Definitions

LoanDataFlow [
Experimental
]