Crate rustc_borrowck
source Β·Expand description
This query borrow-checks the MIR to (further) ensure it is not broken.
Modules§
- 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.
- diags π
- facts π
- location π
- 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 beingDisjoint
. - polonius πFunctions dedicated to fact generation for the
-Zpolonius=legacy
datalog implementation. - 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 ifa.b
is borrowed. But: writinga
is legal if*a
is borrowed, whether or nota
is a shared or mutable reference. [β¦] β - region_infer π
- renumber π
- 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 π
- util π
Structs§
- MirBorrowckCtxt π
- RootPlace π
- TyCtxtConsts πAssociate some local constants with the
'tcx
lifetime
Enums§
- AccessDepth π
- ArtificialField π
- 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)
Statics§
- Raw content of Fluent resource for this crate, generated by
fluent_messages
macro, imported byrustc_driver
to include all cratesβ resources in one bundle.
Functions§
- do_mir_borrowck πPerform the actual borrow checking.
- mir_borrowck π