Module rustc_mir::borrow_check::nll::type_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 pass type-checks the MIR to ensure it is not broken.
Re-exports
use borrow_check::location::LocationTable; |
use borrow_check::nll::facts::AllFacts; |
use borrow_check::nll::region_infer::Cause; |
use borrow_check::nll::region_infer::ClosureRegionRequirementsExt; |
use borrow_check::nll::region_infer::OutlivesConstraint; |
use borrow_check::nll::region_infer::TypeTest; |
use borrow_check::nll::universal_regions::UniversalRegions; |
use dataflow::move_paths::MoveData; |
use dataflow::FlowAtLocation; |
use dataflow::MaybeInitializedPlaces; |
use rustc::hir::def_id::DefId; |
use rustc::infer::region_constraints::GenericKind; |
use rustc::infer::region_constraints::RegionConstraintData; |
use rustc::infer::InferCtxt; |
use rustc::infer::InferOk; |
use rustc::infer::InferResult; |
use rustc::infer::LateBoundRegionConversionTime; |
use rustc::infer::UnitResult; |
use rustc::mir::interpret::EvalErrorKind::BoundsCheck; |
use rustc::mir::tcx::PlaceTy; |
use rustc::mir::visit::PlaceContext; |
use rustc::mir::visit::Visitor; |
use rustc::mir::*; |
use rustc::traits::query::NoSolution; |
use rustc::traits; |
use rustc::traits::ObligationCause; |
use rustc::traits::Normalized; |
use rustc::traits::TraitEngine; |
use rustc::ty::error::TypeError; |
use rustc::ty::fold::TypeFoldable; |
use rustc::ty; |
use rustc::ty::ToPolyTraitRef; |
use rustc::ty::Ty; |
use rustc::ty::TyCtxt; |
use rustc::ty::TypeVariants; |
use std::fmt; |
use std::rc::Rc; |
use syntax_pos::Span; |
use syntax_pos::DUMMY_SP; |
use transform::MirPass; |
use transform::MirSource; |
use util::liveness::LivenessResults; |
use rustc_data_structures::fx::FxHashSet; |
use rustc_data_structures::fx::FxHashSet; |
use rustc_data_structures::indexed_vec::Idx; |
Modules
constraint_conversion |
[ Experimental ]
|
input_output |
[ Experimental ] This module contains code to equate the input/output types appearing
in the MIR with the expected input/output types from the function
signature. This requires a bit of processing, as the expected types
are supplied to us before normalization and may contain existential
|
liveness |
[ Experimental ]
|
Structs
BorrowCheckContext |
[ Experimental ]
|
MirTypeckRegionConstraints |
[ Experimental ] A collection of region constraints that must be satisfied for the program to be considered well-typed. |
TypeChecker |
[ Experimental ] The MIR type checker. Visits the MIR and enforces all the constraints needed for it to be valid and well-typed. Along the way, it accrues region constraints -- these can later be used by NLL region checking. |
TypeVerifier |
[ Experimental ] Verifies that MIR types are sane to not crash further checks. |
TypeckMir |
[ Experimental ]
|
Enums
FieldAccessError |
[ Experimental ]
|
Locations |
[ Experimental ] The |
Traits
AtLocation |
[ Experimental ]
|
ToLocations |
[ Experimental ]
|
Functions
mirbug |
[ Experimental ]
|
type_check |
[ Experimental ] Type checks the given |
type_check_internal |
[ Experimental ]
|