Re-exportsΒ§
use std::assert_matches;πuse std::cell::Cell;πuse std::fmt::Debug;πuse std::fmt::Debug;πuse std::hash::Hash;πuse std::hash::Hash;πuse std::sync::Arc;πuse std::sync::atomic::AtomicU32;πuse std::sync::atomic::Ordering;πuse rustc_data_structures::fingerprint::Fingerprint;πuse rustc_data_structures::fingerprint::PackedFingerprint;πuse rustc_data_structures::fx::FxHashSet;πuse rustc_data_structures::profiling::QueryInvocationId;πuse rustc_data_structures::sharded::ShardedHashMap;πuse rustc_data_structures::stable_hash::StableHash;πuse rustc_data_structures::stable_hash::StableHasher;πuse rustc_data_structures::sync::AtomicU64;πuse rustc_data_structures::sync::Lock;πuse rustc_data_structures::sync::WorkerLocal;πuse rustc_data_structures::unord::UnordMap;πuse rustc_errors::DiagInner;πuse rustc_index::IndexVec;πuse rustc_macros::Decodable;πuse rustc_macros::Encodable;πuse rustc_serialize::opaque::FileEncodeResult;πuse rustc_serialize::opaque::FileEncoder;πuse rustc_session::Session;πuse rustc_span::Symbol;πuse smallvec::SmallVec;πuse tracing::instrument;πuse tracing::instrument;πuse super::debug::EdgeFilter;πuse std::env;πuse std::env;πuse super::edges::ReadsRecorder;πuse super::edges::SMALL_READS_MAX;πuse super::edges::TaskReads;πuse super::retained::RetainedDepGraph;πuse super::serialized::GraphEncoder;πuse super::serialized::SerializedDepGraph;πuse super::serialized::SerializedDepNodeIndex;πuse super::DepKind;πuse super::DepNode;πuse super::WorkProductId;πuse super::read_deps;πuse super::with_deps;πuse crate::ich::StableHashState;πuse crate::ty::TyCtxt;πuse crate::verify_ich::incremental_verify_ich;π
StructsΒ§
- Current
DepGraph π CurrentDepGraphstores the dependency graph for the current session. It will be populated as we run queries or tasks. We never remove nodes from the graph: they are only added.- DepGraph
- DepGraph
Data - DepNode
Color πMap - DepNode
Index - Edge
Frame π - The edge list of one node being marked green: it occupies
buf[start..]of the shared scratch buffer and is popped again on drop, restoring the buffer for the enclosing call. - Edge
Index π - Mark
Frame π - Task
Deps - Work
Product - A βwork productβ is an intermediate result that we save into the incremental directory for later re-use. The primary example are the object files that we save for each partition at code generation time.
EnumsΒ§
- DepNode
Color π - Desired
Color π - The color that
DepNodeColorMap::try_set_colorshould try to apply to a node. - Query
Side Effect - Tracks βside effectsβ for a particular query. This struct is saved to disk along with the query result, and loaded from disk if we mark the query as green. This allows us to βreplayβ changes to global state that would otherwise only occur if we actually executed the query method.
- Task
Deps Ref - TrySet
Color πResult - Return value of
DepNodeColorMap::try_set_color, indicating success or failure, and (on failure) what the existing color is.
ConstantsΒ§
- COMPRESSED_
RED π - COMPRESSED_
UNKNOWN π