File tree Expand file tree Collapse file tree 2 files changed +15
-2
lines changed
compiler/rustc_data_structures/src/obligation_forest Expand file tree Collapse file tree 2 files changed +15
-2
lines changed Original file line number Diff line number Diff line change @@ -733,6 +733,7 @@ impl<O: ForestObligation> ObligationForest<O> {
733
733
// `for index in 0..self.nodes.len() { ... }` because the range would
734
734
// be computed with the initial length, and we would miss the appended
735
735
// nodes. Therefore we use a `while` loop.
736
+ let mut completed = vec ! [ ] ;
736
737
loop {
737
738
let mut i = 0 ;
738
739
let mut made_progress_this_iteration = false ;
@@ -826,10 +827,15 @@ impl<O: ForestObligation> ObligationForest<O> {
826
827
827
828
self . mark_successes ( ) ;
828
829
self . process_cycles ( processor) ;
829
- self . compress ( do_completed) ;
830
+ if let Some ( mut c) = self . compress ( do_completed) {
831
+ completed. append ( & mut c) ;
832
+ }
830
833
}
831
834
832
- Some ( Outcome { completed : None , errors } )
835
+ Some ( Outcome {
836
+ completed : if do_completed == DoCompleted :: Yes { Some ( completed) } else { None } ,
837
+ errors,
838
+ } )
833
839
}
834
840
835
841
/// Checks which nodes have been unblocked since the last time this was called. All nodes that
Original file line number Diff line number Diff line change 80
80
type Obligation = O ;
81
81
type Error = E ;
82
82
83
+ fn checked_process_obligation (
84
+ & mut self ,
85
+ obligation : & mut Self :: Obligation ,
86
+ ) -> ProcessResult < Self :: Obligation , Self :: Error > {
87
+ ( self . process_obligation ) ( obligation)
88
+ }
89
+
83
90
fn process_obligation (
84
91
& mut self ,
85
92
obligation : & mut Self :: Obligation ,
You can’t perform that action at this time.
0 commit comments