Skip to content

Commit 10c3327

Browse files
committed
Only use logging db if CHALK_DEBUG is active
1 parent 58e338a commit 10c3327

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

crates/hir_ty/src/traits.rs

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,6 @@ fn solve(
152152
goal: &chalk_ir::UCanonical<chalk_ir::InEnvironment<chalk_ir::Goal<Interner>>>,
153153
) -> Option<chalk_solve::Solution<Interner>> {
154154
let context = ChalkContext { db, krate };
155-
156-
let logging_db = LoggingRustIrDatabase::new(context);
157-
158155
log::debug!("solve goal: {:?}", goal);
159156
let mut solver = create_chalk_solver();
160157

@@ -169,17 +166,23 @@ fn solve(
169166
}
170167
remaining > 0
171168
};
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)
176183
};
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() };
181184

182-
log::debug!("chalk program:\n{}", logging_db);
185+
log::debug!("solve({:?}) => {:?}", goal, solution);
183186

184187
solution
185188
}

0 commit comments

Comments
 (0)