mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 00:03:43 +00:00
internal: ensure that runaway type-inference doesn't block the main loop
We have a bug where type-checking `per_query_memory_usage` takes a couple of seconds. It also reveals another bug: our type inference is not cancellable.
This commit is contained in:
parent
2381a54c2f
commit
b35312d4af
@ -119,6 +119,8 @@ impl<'a> InferenceContext<'a> {
|
||||
}
|
||||
|
||||
fn infer_expr_inner(&mut self, tgt_expr: ExprId, expected: &Expectation) -> Ty {
|
||||
self.db.check_canceled();
|
||||
|
||||
let body = Arc::clone(&self.body); // avoid borrow checker problem
|
||||
let ty = match &body[tgt_expr] {
|
||||
Expr::Missing => self.err_ty(),
|
||||
|
Loading…
Reference in New Issue
Block a user