Skip to content

Commit 4e5fb24

Browse files
committed
w
1 parent 2c1be37 commit 4e5fb24

File tree

1 file changed

+5
-12
lines changed
  • compiler/rustc_type_ir/src/search_graph

1 file changed

+5
-12
lines changed

compiler/rustc_type_ir/src/search_graph/mod.rs

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1262,7 +1262,7 @@ impl<D: Delegate<Cx = X>, X: Cx> SearchGraph<D> {
12621262
has_been_used: None,
12631263
});
12641264

1265-
if !D::ENABLE_PROVISIONAL_CACHE {
1265+
if true || !D::ENABLE_PROVISIONAL_CACHE {
12661266
let result = D::compute_goal(self, cx, prev_stack_entry.input, inspect);
12671267
let reeval_entry = self.stack.pop();
12681268
return (reeval_entry, result);
@@ -1287,7 +1287,6 @@ impl<D: Delegate<Cx = X>, X: Cx> SearchGraph<D> {
12871287
let cycles = self.tree.rerun_get_and_reset_cycles(prev_stack_entry.node_id);
12881288
let current_stack_len = self.stack.len();
12891289
let mut first_cycle = true;
1290-
let mut only_evaluated_leaf = false;
12911290
'outer: for cycle in cycles {
12921291
let &tree::Cycle { node_id: cycle_node_id, ref provisional_results } =
12931292
self.tree.get_cycle(cycle);
@@ -1366,20 +1365,16 @@ impl<D: Delegate<Cx = X>, X: Cx> SearchGraph<D> {
13661365
);
13671366
break;
13681367
}
1368+
} else if current_goal.0 == node_id {
1369+
debug!(parent = ?info.input, cycle = ?added_goals.last().unwrap(), "reevaluated parent, skip cycle");
1370+
continue 'outer;
13691371
} else {
1370-
if only_evaluated_leaf {
1371-
break;
1372-
} else {
1373-
debug!(parent = ?info.input, cycle = ?added_goals.last().unwrap(), "reevaluated parent, skip cycle");
1374-
continue 'outer;
1375-
}
1372+
break;
13761373
}
13771374
}
13781375
}
13791376
}
13801377

1381-
only_evaluated_leaf = true;
1382-
13831378
for (stack_depth, node_id, info) in added_goals {
13841379
let tree::GoalInfo { input, step_kind_from_parent, available_depth } = info;
13851380
let provisional_result = provisional_results.get(&stack_depth).copied();
@@ -1405,7 +1400,6 @@ impl<D: Delegate<Cx = X>, X: Cx> SearchGraph<D> {
14051400
step_kind_from_parent = ?current_goal.1.step_kind_from_parent
14061401
);
14071402
let _span = span.enter();
1408-
14091403
let (node_id, result) = self.evaluate_goal(
14101404
cx,
14111405
current_goal.1.input,
@@ -1417,7 +1411,6 @@ impl<D: Delegate<Cx = X>, X: Cx> SearchGraph<D> {
14171411
debug!(input = ?current_goal.1.input, ?result, "goal did not change");
14181412
continue 'outer;
14191413
} else {
1420-
only_evaluated_leaf = false;
14211414
debug!(input = ?current_goal.1.input, ?result, "goal did change");
14221415
if self.stack.len() > current_stack_len {
14231416
let parent = self.stack.pop();

0 commit comments

Comments
 (0)