Skip to content

Commit 0fa8361

Browse files
committed
w
1 parent c56c6f0 commit 0fa8361

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
@@ -1264,7 +1264,7 @@ impl<D: Delegate<Cx = X>, X: Cx> SearchGraph<D> {
12641264
has_been_used: None,
12651265
});
12661266

1267-
if !D::ENABLE_PROVISIONAL_CACHE {
1267+
if true || !D::ENABLE_PROVISIONAL_CACHE {
12681268
let result = D::compute_goal(self, cx, prev_stack_entry.input, inspect);
12691269
let reeval_entry = self.stack.pop();
12701270
return (reeval_entry, result);
@@ -1289,7 +1289,6 @@ impl<D: Delegate<Cx = X>, X: Cx> SearchGraph<D> {
12891289
let cycles = self.tree.rerun_get_and_reset_cycles(prev_stack_entry.node_id);
12901290
let current_stack_len = self.stack.len();
12911291
let mut first_cycle = true;
1292-
let mut only_evaluated_leaf = false;
12931292
'outer: for cycle in cycles {
12941293
let &tree::Cycle { node_id: cycle_node_id, ref provisional_results } =
12951294
self.tree.get_cycle(cycle);
@@ -1368,20 +1367,16 @@ impl<D: Delegate<Cx = X>, X: Cx> SearchGraph<D> {
13681367
);
13691368
break;
13701369
}
1370+
} else if current_goal.0 == node_id {
1371+
debug!(parent = ?info.input, cycle = ?added_goals.last().unwrap(), "reevaluated parent, skip cycle");
1372+
continue 'outer;
13711373
} else {
1372-
if only_evaluated_leaf {
1373-
break;
1374-
} else {
1375-
debug!(parent = ?info.input, cycle = ?added_goals.last().unwrap(), "reevaluated parent, skip cycle");
1376-
continue 'outer;
1377-
}
1374+
break;
13781375
}
13791376
}
13801377
}
13811378
}
13821379

1383-
only_evaluated_leaf = true;
1384-
13851380
for (stack_depth, node_id, info) in added_goals {
13861381
let tree::GoalInfo { input, step_kind_from_parent, available_depth } = info;
13871382
let provisional_result = provisional_results.get(&stack_depth).copied();
@@ -1407,7 +1402,6 @@ impl<D: Delegate<Cx = X>, X: Cx> SearchGraph<D> {
14071402
step_kind_from_parent = ?current_goal.1.step_kind_from_parent
14081403
);
14091404
let _span = span.enter();
1410-
14111405
let (node_id, result) = self.evaluate_goal(
14121406
cx,
14131407
current_goal.1.input,
@@ -1419,7 +1413,6 @@ impl<D: Delegate<Cx = X>, X: Cx> SearchGraph<D> {
14191413
debug!(input = ?current_goal.1.input, ?result, "goal did not change");
14201414
continue 'outer;
14211415
} else {
1422-
only_evaluated_leaf = false;
14231416
debug!(input = ?current_goal.1.input, ?result, "goal did change");
14241417
if self.stack.len() > current_stack_len {
14251418
let parent = self.stack.pop();

0 commit comments

Comments
 (0)