rustc_borrowck - Rust (original) (raw)
Crate rustc_borrowck
Expand description
This query borrow-checks the MIR to (further) ensure it is not broken.
borrow_set π
borrowck_errors π
constraints π
A public API provided for the Rust compiler consumers. This file provides API for compiler consumers.
dataflow π
def_use π
diagnostics π
Borrow checker diagnostics.
member_constraints π
nll π
The entry point of the NLL borrow checker.
path_utils π
place_ext π
places_conflict π
The borrowck rules for proving disjointness are applied from the βrootβ of the borrow forwards, iterating over βsimilarβ projections in lockstep until we can prove overlap one way or another. Essentially, we treat Overlap
as a monoid and report a conflict if the product ends up not being Disjoint
.
polonius π
Polonius analysis and support code:
prefixes π
From the NLL RFC: βShallow prefixes are found by stripping away fields, but stop at any dereference. So: writing a path like a
is illegal if a.b
is borrowed. But: writing a
is legal if *a
is borrowed, whether or not a
is a shared or mutable reference. [β¦] β
region_infer π
renumber π
root_cx π
session_diagnostics π
type_check π
This pass type-checks the MIR to ensure it is not broken.
universal_regions π
Code to extract the universally quantified regions declared on a function and the relationships between them. For example:
used_muts π
BorrowckInferCtxt π
Indicates an outlives-constraint between a type or between two free regions declared on the closure.
Represents a ty::Ty
for use in ClosureOutlivesSubject.
After we borrow check a closure, we are left with various requirements that we have inferred between the free regions that appear in the closureβs signature or on its field types. These requirements are then verified and proved by the closureβs creating function. This struct encodes those requirements.
MirBorrowckCtxt π
PropagatedBorrowCheckResults π
Data propagated to the typeck parent by nested items. This should always be empty for the typeck root.
RootPlace π
TyCtxtConsts π
Associate some local constants with the 'tcx
lifetime
AccessDepth π
ArtificialField π
The subject of a ClosureOutlivesRequirement
β that is, the thing that must outlive some region.
InitializationRequiringAction π
When checking permissions for a place access, this flag is used to indicate that an immutable local place can be mutated.
Overlap π
The degree of overlap between 2 places for borrow-checking.
ReadKind π
Kind of read access to a value (For informational purposes only)
ReadOrWrite π
Kind of access to a value: read or write (For informational purposes only)
WriteKind π
Kind of write access to a value (For informational purposes only)
Raw content of Fluent resource for this crate, generated by fluent_messages
macro, imported by rustc_driver
to include all cratesβ resources in one bundle.
do_mir_borrowck π
Perform the actual borrow checking.
get_flow_results π
mir_borrowck π
Provider for query mir_borrowck
. Similar to typeck
, this must only be called for typeck roots which will then borrowck all nested bodies as well.