Crate rustc_borrowck

source ·
Expand description

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

Modules§

  • A public API provided for the Rust compiler consumers. This file provides API for compiler consumers.
  • dataflow 🔒
  • def_use 🔒
  • Borrow checker diagnostics.
  • diags 🔒
  • facts 🔒
  • location 🔒
  • nll 🔒
    The entry point of the NLL borrow checker.
  • path_utils 🔒
  • place_ext 🔒
  • 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 🔒
    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 if a.b is borrowed. But: writing a is legal if *a is borrowed, whether or not a is a shared or mutable 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 🔒
  • util 🔒

Structs§

Enums§

Statics§

  • 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.

Functions§