Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/mir/borrowck.rs')
-rw-r--r--crates/hir-ty/src/mir/borrowck.rs34
1 files changed, 11 insertions, 23 deletions
diff --git a/crates/hir-ty/src/mir/borrowck.rs b/crates/hir-ty/src/mir/borrowck.rs
index fbcca388e7..eca6f4692a 100644
--- a/crates/hir-ty/src/mir/borrowck.rs
+++ b/crates/hir-ty/src/mir/borrowck.rs
@@ -12,11 +12,11 @@ use stdx::never;
use triomphe::Arc;
use crate::{
+ ClosureId, Interner, Substitution, Ty, TyExt, TypeFlags,
db::{HirDatabase, InternedClosure},
display::DisplayTarget,
mir::Operand,
utils::ClosureSubst,
- ClosureId, Interner, Substitution, Ty, TyExt, TypeFlags,
};
use super::{
@@ -71,7 +71,7 @@ fn all_mir_bodies(
c: ClosureId,
cb: &mut impl FnMut(Arc<MirBody>),
) -> Result<(), MirLowerError> {
- match db.mir_body_for_closure(c) {
+ match db.mir_body_for_closure(c.into()) {
Ok(body) => {
cb(body.clone());
body.closures.iter().try_for_each(|&it| for_closure(db, it, cb))
@@ -132,7 +132,7 @@ fn moved_out_of_ref(db: &dyn HirDatabase, body: &MirBody) -> Vec<MovedOutOfRef>
ty,
db,
make_fetch_closure_field(db),
- body.owner.module(db.upcast()).krate(),
+ body.owner.module(db).krate(),
);
}
if is_dereference_of_ref
@@ -145,7 +145,7 @@ fn moved_out_of_ref(db: &dyn HirDatabase, body: &MirBody) -> Vec<MovedOutOfRef>
Operand::Constant(_) | Operand::Static(_) => (),
};
for (_, block) in body.basic_blocks.iter() {
- db.unwind_if_cancelled();
+ db.unwind_if_revision_cancelled();
for statement in &block.statements {
match &statement.kind {
StatementKind::Assign(_, r) => match r {
@@ -223,7 +223,7 @@ fn partially_moved(db: &dyn HirDatabase, body: &MirBody) -> Vec<PartiallyMoved>
ty,
db,
make_fetch_closure_field(db),
- body.owner.module(db.upcast()).krate(),
+ body.owner.module(db).krate(),
);
}
if !ty.clone().is_copy(db, body.owner)
@@ -235,7 +235,7 @@ fn partially_moved(db: &dyn HirDatabase, body: &MirBody) -> Vec<PartiallyMoved>
Operand::Constant(_) | Operand::Static(_) => (),
};
for (_, block) in body.basic_blocks.iter() {
- db.unwind_if_cancelled();
+ db.unwind_if_revision_cancelled();
for statement in &block.statements {
match &statement.kind {
StatementKind::Assign(_, r) => match r {
@@ -306,7 +306,7 @@ fn partially_moved(db: &dyn HirDatabase, body: &MirBody) -> Vec<PartiallyMoved>
fn borrow_regions(db: &dyn HirDatabase, body: &MirBody) -> Vec<BorrowRegion> {
let mut borrows = FxHashMap::default();
for (_, block) in body.basic_blocks.iter() {
- db.unwind_if_cancelled();
+ db.unwind_if_revision_cancelled();
for statement in &block.statements {
if let StatementKind::Assign(_, Rvalue::Ref(kind, p)) = &statement.kind {
borrows
@@ -369,18 +369,9 @@ fn place_case(db: &dyn HirDatabase, body: &MirBody, lvalue: &Place) -> Projectio
}
ProjectionElem::OpaqueCast(_) => (),
}
- ty = proj.projected_ty(
- ty,
- db,
- make_fetch_closure_field(db),
- body.owner.module(db.upcast()).krate(),
- );
- }
- if is_part_of {
- ProjectionCase::DirectPart
- } else {
- ProjectionCase::Direct
+ ty = proj.projected_ty(ty, db, make_fetch_closure_field(db), body.owner.module(db).krate());
}
+ if is_part_of { ProjectionCase::DirectPart } else { ProjectionCase::Direct }
}
/// Returns a map from basic blocks to the set of locals that might be ever initialized before
@@ -423,10 +414,7 @@ fn ever_initialized_map(
let Some(terminator) = &block.terminator else {
never!(
"Terminator should be none only in construction.\nThe body:\n{}",
- body.pretty_print(
- db,
- DisplayTarget::from_crate(db, body.owner.krate(db.upcast()))
- )
+ body.pretty_print(db, DisplayTarget::from_crate(db, body.owner.krate(db)))
);
return;
};
@@ -477,7 +465,7 @@ fn ever_initialized_map(
dfs(db, body, l, &mut stack, &mut result);
}
for l in body.locals.iter().map(|it| it.0) {
- db.unwind_if_cancelled();
+ db.unwind_if_revision_cancelled();
if !result[body.start_block].contains_idx(l) {
result[body.start_block].insert(l, false);
stack.clear();