Expand description

This query borrow-checks the MIR to (further) ensure it is not broken.


This file provides API for compiler consumers.

dataflow 🔒
def_use 🔒

Borrow checker diagnostics.

error 🔒
facts 🔒
location 🔒
nll 🔒

The entry point of the NLL borrow checker.

path_utils 🔒
place_ext 🔒
prefixes 🔒

From the NLL RFC: “The deep [aka ‘supporting’] prefixes for an place are formed by stripping away fields and derefs, except that we stop when we reach the deref of a shared reference. […] “

renumber 🔒
type_check 🔒

This pass type-checks the MIR to ensure it is not broken.

Code to extract the universally quantified regions declared on a function and the relationships between them. For example:

used_muts 🔒


A Body with information computed by the borrow checker. This struct is intended to be consumed by compiler consumers.

RootPlace 🔒
Upvar 🔒


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)

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)



Perform the actual borrow checking.