Module rustc_incremental::persist::dirty_clean
source Β· 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). -
#[rustc_clean(cfg="rev2", loaded_from_disk='typeck")]
asserts that the query result forDepNode::typeck(X)
was actually loaded from disk (not just marked green). This can be useful to ensure that a test is actually exercising the deserialization logic for a particular query result. This can be combined withexcept
Errors are reported if we are in the suitable configuration but the required condition is not met.
Structs§
- Assertion πRepresents the requested configuration by rustc_clean/dirty
- Dirty
Clean πVisitor - Find
AllAttrs πA visitor that collects all#[rustc_clean]
attributes from the HIR. It is used to verify that we really ran checks for all annotated nodes.
Constants§
- BASE_
CONST πFor typedef, constants, and statics - BASE_FN πDepNodes for functions + methods
- BASE_
HIR πDepNodes for Hir, which is pretty much everything - BASE_
IMPL πimpl
implementation of struct/trait - BASE_
MIR πDepNodes for exported mir bodies, which is relevant in βexecutableβ code, i.e., functions+methods - BASE_
STRUCT πStruct, Enum and Union DepNodes - CFG π
- EXCEPT π
- EXTR
A_ πASSOCIATED Trait definitionDepNode
s. ExtraDepNode
s for functions and methods. - EXTR
A_ πTRAIT - LABEL
S_ πADT Abstract data type (struct, enum, union)DepNode
s. - LABEL
S_ πCONST - LABEL
S_ πCONS T_ IN_ IMPL Constant/Typedef in an impl - Trait-Const/Typedef DepNodes
- LABEL
S_ πFN FunctionDepNode
s. - LABEL
S_ πFN_ IN_ IMPL MethodDepNode
s. - LABEL
S_ πFN_ IN_ TRAIT Trait methodDepNode
s. - LABEL
S_ πHIR_ ONLY For generic cases like inline-assembly, modules, etc. - LABEL
S_ πIMPL ImplDepNode
s. - LABEL
S_ πTRAIT ImplDepNode
s. - LOADE
D_ πFROM_ DISK
Functions§
- check_
config πGiven a#[rustc_clean]
attribute, scan for acfg="foo"
attribute and check whether we have a cfg flag calledfoo
.
Type Aliases§
- Labels π