@@ -200,30 +200,23 @@ impl<'tcx> ProofTreeBuilder<'tcx> {
200
200
tcx : TyCtxt < ' tcx > ,
201
201
generate_proof_tree : GenerateProofTree ,
202
202
) -> ProofTreeBuilder < ' tcx > {
203
- let generate_proof_tree = match (
204
- tcx. sess . opts . unstable_opts . dump_solver_proof_tree ,
205
- tcx. sess . opts . unstable_opts . dump_solver_proof_tree_use_cache ,
206
- generate_proof_tree,
207
- ) {
208
- ( _, Some ( use_cache) , GenerateProofTree :: Yes ( _) ) => {
209
- GenerateProofTree :: Yes ( UseGlobalCache :: from_bool ( use_cache) )
210
- }
211
-
212
- ( DumpSolverProofTree :: Always , use_cache, GenerateProofTree :: No ) => {
213
- let use_cache = use_cache. unwrap_or ( true ) ;
214
- GenerateProofTree :: Yes ( UseGlobalCache :: from_bool ( use_cache) )
215
- }
216
-
217
- ( _, None , GenerateProofTree :: Yes ( _) ) => generate_proof_tree,
218
- ( DumpSolverProofTree :: Never , _, _) => generate_proof_tree,
219
- ( DumpSolverProofTree :: OnError , _, _) => generate_proof_tree,
220
- } ;
221
-
222
203
match generate_proof_tree {
223
- GenerateProofTree :: No => ProofTreeBuilder :: new_noop ( ) ,
224
- GenerateProofTree :: Yes ( global_cache_disabled) => {
225
- ProofTreeBuilder :: new_root ( global_cache_disabled)
204
+ GenerateProofTree :: Never => ProofTreeBuilder :: new_noop ( ) ,
205
+ GenerateProofTree :: IfEnabled => {
206
+ let opts = & tcx. sess . opts . unstable_opts ;
207
+ match opts. dump_solver_proof_tree {
208
+ DumpSolverProofTree :: Always => {
209
+ let use_cache = opts. dump_solver_proof_tree_use_cache . unwrap_or ( true ) ;
210
+ ProofTreeBuilder :: new_root ( UseGlobalCache :: from_bool ( use_cache) )
211
+ }
212
+ // `OnError` is handled by reevaluating goals in error
213
+ // reporting with `GenerateProofTree::Yes`.
214
+ DumpSolverProofTree :: OnError | DumpSolverProofTree :: Never => {
215
+ ProofTreeBuilder :: new_noop ( )
216
+ }
217
+ }
226
218
}
219
+ GenerateProofTree :: Yes ( use_cache) => ProofTreeBuilder :: new_root ( use_cache) ,
227
220
}
228
221
}
229
222
0 commit comments