Expand description
This query borrow-checks the MIR to (further) ensure it is not broken.
Modules§
- borrow_
set 🔒 - borrowck_
errors 🔒 - constraints 🔒
- consumers
- 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 beingDisjoint
. - 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 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 🔒
Structs§
- Borrowck
Infer 🔒Ctxt - MirBorrowck
Ctxt 🔒 - Root
Place 🔒 - TyCtxt
Consts 🔒 - Associate some local constants with the
'tcx
lifetime
Enums§
- Access
Depth 🔒 - Artificial
Field 🔒 - Initialization
Requiring 🔒Action - Local
Mutation 🔒IsAllowed - 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.
- Read
Kind 🔒 - Kind of read access to a value (For informational purposes only)
- Read
OrWrite 🔒 - Kind of access to a value: read or write (For informational purposes only)
- Write
Kind 🔒 - Kind of write access to a value (For informational purposes only)
Statics§
- DEFAULT_
LOCALE_ RESOURCE - 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.
- get_
flow_ 🔒results - mir_
borrowck 🔒 - provide