Merge ensure_node_can_be_forced into force_from_dep_node.
This commit is contained in:
parent
db7bd5f828
commit
2326ae39b2
3 changed files with 9 additions and 16 deletions
|
|
@ -110,10 +110,6 @@ impl<'tcx> DepContext for TyCtxt<'tcx> {
|
|||
TyCtxt::create_stable_hashing_context(*self)
|
||||
}
|
||||
|
||||
fn force_from_dep_node(&self, node: &DepNode) -> bool {
|
||||
ty::query::force_from_dep_node(*self, node)
|
||||
}
|
||||
|
||||
/// Extracts the DefId corresponding to this DepNode. This will work
|
||||
/// if two conditions are met:
|
||||
///
|
||||
|
|
@ -133,7 +129,7 @@ impl<'tcx> DepContext for TyCtxt<'tcx> {
|
|||
}
|
||||
}
|
||||
|
||||
fn ensure_node_can_be_forced(&self, dep_dep_node: &DepNode) -> Option<()> {
|
||||
fn try_force_previous_green(&self, dep_dep_node: &DepNode) -> bool {
|
||||
// FIXME: This match is just a workaround for incremental bugs and should
|
||||
// be removed. https://github.com/rust-lang/rust/issues/62649 is one such
|
||||
// bug that must be fixed before removing this.
|
||||
|
|
@ -162,12 +158,12 @@ impl<'tcx> DepContext for TyCtxt<'tcx> {
|
|||
// Since the given `DefPath` does not
|
||||
// denote the item that previously
|
||||
// existed, we just fail to mark green.
|
||||
return None;
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
// If the node does not exist anymore, we
|
||||
// just fail to mark green.
|
||||
return None;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
_ => {
|
||||
|
|
@ -175,7 +171,9 @@ impl<'tcx> DepContext for TyCtxt<'tcx> {
|
|||
// forced.
|
||||
}
|
||||
}
|
||||
Some(())
|
||||
|
||||
debug!("try_force_previous_green({:?}) --- trying to force", dep_dep_node);
|
||||
ty::query::force_from_dep_node(*self, dep_dep_node)
|
||||
}
|
||||
|
||||
fn has_errors_or_delayed_span_bugs(&self) -> bool {
|
||||
|
|
|
|||
|
|
@ -635,8 +635,6 @@ impl<K: DepKind> DepGraph<K> {
|
|||
current_deps.push(node_index);
|
||||
continue;
|
||||
}
|
||||
} else {
|
||||
tcx.ensure_node_can_be_forced(dep_dep_node)?;
|
||||
}
|
||||
|
||||
// We failed to mark it green, so we try to force the query.
|
||||
|
|
@ -645,7 +643,7 @@ impl<K: DepKind> DepGraph<K> {
|
|||
dependency {:?}",
|
||||
dep_node, dep_dep_node
|
||||
);
|
||||
if tcx.force_from_dep_node(dep_dep_node) {
|
||||
if tcx.try_force_previous_green(dep_dep_node) {
|
||||
let dep_dep_node_color = data.colors.get(dep_dep_node_index);
|
||||
|
||||
match dep_dep_node_color {
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ pub trait DepContext: Copy {
|
|||
/// Create a hashing context for hashing new results.
|
||||
fn create_stable_hashing_context(&self) -> Self::StableHashingContext;
|
||||
|
||||
/// Force the execution of a query given the associated `DepNode`.
|
||||
fn force_from_dep_node(&self, node: &DepNode<Self::DepKind>) -> bool;
|
||||
/// Try to force a dep node to execute and see if it's green.
|
||||
fn try_force_previous_green(&self, node: &DepNode<Self::DepKind>) -> bool;
|
||||
|
||||
/// Extracts the DefId corresponding to this DepNode. This will work
|
||||
/// if two conditions are met:
|
||||
|
|
@ -46,9 +46,6 @@ pub trait DepContext: Copy {
|
|||
/// has been removed.
|
||||
fn extract_def_id(&self, node: &DepNode<Self::DepKind>) -> Option<DefId>;
|
||||
|
||||
/// Check the legality of forcing this node.
|
||||
fn ensure_node_can_be_forced(&self, dep_dep_node: &DepNode<Self::DepKind>) -> Option<()>;
|
||||
|
||||
/// Return whether the current session is tainted by errors.
|
||||
fn has_errors_or_delayed_span_bugs(&self) -> bool;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue