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 withDepNode::typeck(X)
must be DIFFERENT (X
is theDefId
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
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 DepNode
s.
Extra DepNode
s for functions and methods.
Abstract data type (struct, enum, union) DepNode
s.
Constant/Typedef in an impl
Trait-Const/Typedef DepNodes
Function DepNode
s.
Method DepNode
s.
Trait method DepNode
s.
For generic cases like inline-assembly, modules, etc.
Impl DepNode
s.
Impl DepNode
s.
Functions
Given a #[rustc_clean]
attribute, scan for a cfg="foo"
attribute and check whether we have
a cfg flag called foo
.