Crate rustc_passes

source ·
Expand description

Various checks


This API is completely unstable and subject to change.


  • check_attr 🔒
    This module implements some validity checks for attributes. In particular it verifies that #[inline] and #[repr] attributes are attached to items that actually support them and if there are conflicts between multiple such attributes attached to the same item.
  • This pass checks HIR bodies that may be evaluated at compile-time (e.g., const, static, const fn) for structured control flow (e.g. if, while), which is forbidden in a const context.
  • Detecting usage of the #[debugger_visualizer] attribute.
  • Detecting diagnostic items.
  • errors 🔒
  • lang_items 🔒
    Detecting language items.
  • Detecting lib features (i.e., features that are not lang features).
  • liveness 🔒
    A classic liveness analysis based on dataflow over the AST. Computes, for each local variable in a function, whether that variable is live at a given point. Program execution points are identified by their IDs.
  • Checks validity of naked functions.
  • reachable 🔒
    Finds local items that are externally reachable, which means that other crates need access to their compiled machine code or their MIR.
  • A pass that annotates every item and method with its stability level, propagating default levels lexically from parent to children ast nodes.
  • upvars 🔒
    Upvar (closure capture) collection from cross-body HIR uses of Res::Locals.
  • Validity checking for weak lang items


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