@@ -152,9 +152,6 @@ fn solve(
152
152
goal : & chalk_ir:: UCanonical < chalk_ir:: InEnvironment < chalk_ir:: Goal < Interner > > > ,
153
153
) -> Option < chalk_solve:: Solution < Interner > > {
154
154
let context = ChalkContext { db, krate } ;
155
-
156
- let logging_db = LoggingRustIrDatabase :: new ( context) ;
157
-
158
155
log:: debug!( "solve goal: {:?}" , goal) ;
159
156
let mut solver = create_chalk_solver ( ) ;
160
157
@@ -169,17 +166,23 @@ fn solve(
169
166
}
170
167
remaining > 0
171
168
} ;
172
- let mut solve = || {
173
- let solution = solver. solve_limited ( & logging_db, goal, should_continue) ;
174
- log:: debug!( "solve({:?}) => {:?}" , goal, solution) ;
175
- solution
169
+
170
+ let solution = if is_chalk_debug ( ) {
171
+ let logging_db = LoggingRustIrDatabase :: new ( context) ;
172
+ let solve = || {
173
+ let solution = solver. solve_limited ( & logging_db, goal, should_continue) ;
174
+ log:: debug!( "chalk program:\n {}" , logging_db) ;
175
+ solution
176
+ } ;
177
+
178
+ // don't set the TLS for Chalk unless Chalk debugging is active, to make
179
+ // extra sure we only use it for debugging
180
+ chalk:: tls:: set_current_program ( db, solve)
181
+ } else {
182
+ solver. solve_limited ( & context, goal, should_continue)
176
183
} ;
177
- // don't set the TLS for Chalk unless Chalk debugging is active, to make
178
- // extra sure we only use it for debugging
179
- let solution =
180
- if is_chalk_debug ( ) { chalk:: tls:: set_current_program ( db, solve) } else { solve ( ) } ;
181
184
182
- log:: debug!( "chalk program: \n { }" , logging_db ) ;
185
+ log:: debug!( "solve({:?}) => {:? }" , goal , solution ) ;
183
186
184
187
solution
185
188
}
0 commit comments