Move QuerySideEffect.
From `rustc_query_system` to `rustc_middle.` I put it in `graph.rs`, it's one of two files that uses `QuerySideEffect` and seemed as good as anywhere else.
This commit is contained in:
parent
72c7d8640f
commit
8d56cfe4c3
7 changed files with 20 additions and 33 deletions
|
|
@ -4514,11 +4514,8 @@ dependencies = [
|
|||
"rustc_abi",
|
||||
"rustc_ast",
|
||||
"rustc_data_structures",
|
||||
"rustc_errors",
|
||||
"rustc_feature",
|
||||
"rustc_hir",
|
||||
"rustc_macros",
|
||||
"rustc_serialize",
|
||||
"rustc_session",
|
||||
"rustc_span",
|
||||
"smallvec",
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ use rustc_errors::DiagInner;
|
|||
use rustc_index::IndexVec;
|
||||
use rustc_macros::{Decodable, Encodable};
|
||||
use rustc_query_system::ich::StableHashingContext;
|
||||
use rustc_query_system::query::QuerySideEffect;
|
||||
use rustc_serialize::opaque::{FileEncodeResult, FileEncoder};
|
||||
use rustc_session::Session;
|
||||
use tracing::{debug, instrument};
|
||||
|
|
@ -30,6 +29,23 @@ use crate::dep_graph::edges::EdgesVec;
|
|||
use crate::ty::TyCtxt;
|
||||
use crate::verify_ich::incremental_verify_ich;
|
||||
|
||||
/// 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.
|
||||
///
|
||||
/// Each side effect gets an unique dep node index which is added
|
||||
/// as a dependency of the query which had the effect.
|
||||
#[derive(Debug, Encodable, Decodable)]
|
||||
pub enum QuerySideEffect {
|
||||
/// Stores a diagnostic emitted during query execution.
|
||||
/// This diagnostic will be re-emitted if we mark
|
||||
/// the query as green, as that query will have the side
|
||||
/// effect dep node as a dependency.
|
||||
Diagnostic(DiagInner),
|
||||
}
|
||||
#[derive(Clone)]
|
||||
pub struct DepGraph {
|
||||
data: Option<Arc<DepGraphData>>,
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@ pub use self::dep_node::{
|
|||
label_strs,
|
||||
};
|
||||
pub use self::graph::{
|
||||
DepGraph, DepGraphData, DepNodeIndex, TaskDepsRef, WorkProduct, WorkProductMap, hash_result,
|
||||
DepGraph, DepGraphData, DepNodeIndex, QuerySideEffect, TaskDepsRef, WorkProduct,
|
||||
WorkProductMap, hash_result,
|
||||
};
|
||||
use self::graph::{MarkFrame, print_markframe_trace};
|
||||
pub use self::query::DepGraphQuery;
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ use rustc_hir::def_id::{CrateNum, DefId, DefIndex, LOCAL_CRATE, LocalDefId, Stab
|
|||
use rustc_hir::definitions::DefPathHash;
|
||||
use rustc_index::{Idx, IndexVec};
|
||||
use rustc_macros::{Decodable, Encodable};
|
||||
use rustc_query_system::query::QuerySideEffect;
|
||||
use rustc_serialize::opaque::{FileEncodeResult, FileEncoder, IntEncodedWithFixedSize, MemDecoder};
|
||||
use rustc_serialize::{Decodable, Decoder, Encodable, Encoder};
|
||||
use rustc_session::Session;
|
||||
|
|
@ -24,7 +23,7 @@ use rustc_span::{
|
|||
SourceFile, Span, SpanDecoder, SpanEncoder, StableSourceFileId, Symbol,
|
||||
};
|
||||
|
||||
use crate::dep_graph::{DepNodeIndex, SerializedDepNodeIndex};
|
||||
use crate::dep_graph::{DepNodeIndex, QuerySideEffect, SerializedDepNodeIndex};
|
||||
use crate::mir::interpret::{AllocDecodingSession, AllocDecodingState};
|
||||
use crate::mir::mono::MonoItem;
|
||||
use crate::mir::{self, interpret};
|
||||
|
|
|
|||
|
|
@ -8,11 +8,8 @@ edition = "2024"
|
|||
rustc_abi = { path = "../rustc_abi" }
|
||||
rustc_ast = { path = "../rustc_ast" }
|
||||
rustc_data_structures = { path = "../rustc_data_structures" }
|
||||
rustc_errors = { path = "../rustc_errors" }
|
||||
rustc_feature = { path = "../rustc_feature" }
|
||||
rustc_hir = { path = "../rustc_hir" }
|
||||
rustc_macros = { path = "../rustc_macros" }
|
||||
rustc_serialize = { path = "../rustc_serialize" }
|
||||
rustc_session = { path = "../rustc_session" }
|
||||
rustc_span = { path = "../rustc_span" }
|
||||
smallvec = { version = "1.8.1", features = ["union", "may_dangle"] }
|
||||
|
|
|
|||
|
|
@ -5,4 +5,3 @@
|
|||
// tidy-alphabetical-end
|
||||
|
||||
pub mod ich;
|
||||
pub mod query;
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
use std::fmt::Debug;
|
||||
|
||||
use rustc_errors::DiagInner;
|
||||
use rustc_macros::{Decodable, Encodable};
|
||||
|
||||
/// 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.
|
||||
///
|
||||
/// Each side effect gets an unique dep node index which is added
|
||||
/// as a dependency of the query which had the effect.
|
||||
#[derive(Debug, Encodable, Decodable)]
|
||||
pub enum QuerySideEffect {
|
||||
/// Stores a diagnostic emitted during query execution.
|
||||
/// This diagnostic will be re-emitted if we mark
|
||||
/// the query as green, as that query will have the side
|
||||
/// effect dep node as a dependency.
|
||||
Diagnostic(DiagInner),
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue