Module rustc_incremental::persist::dirty_clean[][src]

Expand description

Debugging code to test fingerprints computed for query results. For each node marked with #[rustc_clean] we will compare the fingerprint from the current and from the previous compilation session as appropriate:

  • #[rustc_clean(cfg="rev2", except="typeck")] if we are in #[cfg(rev2)], then the fingerprints associated with DepNode::typeck(X) must be DIFFERENT (X is the DefId of the current node).
  • #[rustc_clean(cfg="rev2")] same as above, except that the fingerprints must be the SAME (along with all other fingerprints).

Errors are reported if we are in the suitable configuration but the required condition is not met.

Structs

Represents the requested configuration by rustc_clean/dirty

Constants

For typedef, constants, and statics

DepNodes for functions + methods

DepNodes for Hir, which is pretty much everything

impl implementation of struct/trait

DepNodes for mir_built/Optimized, which is relevant in “executable” code, i.e., functions+methods

Struct, Enum and Union DepNodes

Trait definition DepNodes. Extra DepNodes for functions and methods.

Abstract data type (struct, enum, union) DepNodes.

Constant/Typedef in an impl

Trait-Const/Typedef DepNodes

Function DepNodes.

Method DepNodes.

Trait method DepNodes.

For generic cases like inline-assembly, modules, etc.

Impl DepNodes.

Impl DepNodes.

Functions

Given a #[rustc_clean] attribute, scan for a cfg="foo" attribute and check whether we have a cfg flag called foo.

Type Definitions