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.
Detecting language items.
Detecting lib features (i.e., features that are not lang features).
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.
A pass that annotates every item and method with its stability level,
propagating default levels lexically from parent to children ast nodes.
Upvar (closure capture) collection from cross-body HIR uses of Res::Local
s.
Validity checking for weak lang items