From 2326ae39b262169fa853c510aa1bc795a166dc26 Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Sat, 21 Mar 2020 00:21:57 +0100 Subject: [PATCH] Merge ensure_node_can_be_forced into force_from_dep_node. --- src/librustc/dep_graph/mod.rs | 14 ++++++-------- src/librustc_query_system/dep_graph/graph.rs | 4 +--- src/librustc_query_system/dep_graph/mod.rs | 7 ++----- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/librustc/dep_graph/mod.rs b/src/librustc/dep_graph/mod.rs index 79295b2f827..d739223f6cb 100644 --- a/src/librustc/dep_graph/mod.rs +++ b/src/librustc/dep_graph/mod.rs @@ -110,10 +110,6 @@ fn create_stable_hashing_context(&self) -> Self::StableHashingContext { 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 @@ fn extract_def_id(&self, node: &DepNode) -> Option { } } - 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 @@ fn ensure_node_can_be_forced(&self, dep_dep_node: &DepNode) -> Option<()> { // 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 @@ fn ensure_node_can_be_forced(&self, dep_dep_node: &DepNode) -> Option<()> { // 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 { diff --git a/src/librustc_query_system/dep_graph/graph.rs b/src/librustc_query_system/dep_graph/graph.rs index 5e004c5428a..36edf255a77 100644 --- a/src/librustc_query_system/dep_graph/graph.rs +++ b/src/librustc_query_system/dep_graph/graph.rs @@ -635,8 +635,6 @@ fn try_mark_previous_green>( 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 @@ fn try_mark_previous_green>( 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 { diff --git a/src/librustc_query_system/dep_graph/mod.rs b/src/librustc_query_system/dep_graph/mod.rs index 77bc8f61293..c9983013d38 100644 --- a/src/librustc_query_system/dep_graph/mod.rs +++ b/src/librustc_query_system/dep_graph/mod.rs @@ -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) -> bool; + /// Try to force a dep node to execute and see if it's green. + fn try_force_previous_green(&self, node: &DepNode) -> 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) -> Option; - /// Check the legality of forcing this node. - fn ensure_node_can_be_forced(&self, dep_dep_node: &DepNode) -> Option<()>; - /// Return whether the current session is tainted by errors. fn has_errors_or_delayed_span_bugs(&self) -> bool; -- 2.44.0