Skip to content

Commit e6c56cd

Browse files
committed
review comments
1 parent da1360d commit e6c56cd

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

compiler/rustc_borrowck/src/diagnostics/mutability_errors.rs

+17-14
Original file line numberDiff line numberDiff line change
@@ -606,12 +606,12 @@ impl<'a, 'tcx> MirBorrowckCtxt<'a, 'tcx> {
606606
}
607607
}
608608
Some((false, err_label_span, message)) => {
609-
struct V {
609+
struct BindingFinder {
610610
span: Span,
611611
hir_id: Option<hir::HirId>,
612612
}
613613

614-
impl<'tcx> Visitor<'tcx> for V {
614+
impl<'tcx> Visitor<'tcx> for BindingFinder {
615615
fn visit_stmt(&mut self, s: &'tcx hir::Stmt<'tcx>) {
616616
if let hir::StmtKind::Local(local) = s.kind {
617617
if local.pat.span == self.span {
@@ -622,20 +622,23 @@ impl<'a, 'tcx> MirBorrowckCtxt<'a, 'tcx> {
622622
}
623623
}
624624
let hir_map = self.infcx.tcx.hir();
625-
let pat = loop {
626-
// Poor man's try block
627-
let def_id = self.body.source.def_id();
628-
let hir_id =
629-
hir_map.local_def_id_to_hir_id(def_id.as_local().unwrap());
630-
let node = hir_map.find(hir_id);
631-
let Some(hir::Node::Item(item)) = node else { break None; };
632-
let hir::ItemKind::Fn(.., body_id) = item.kind else { break None; };
633-
let body = self.infcx.tcx.hir().body(body_id);
634-
let mut v = V { span: err_label_span, hir_id: None };
625+
let def_id = self.body.source.def_id();
626+
let hir_id = hir_map.local_def_id_to_hir_id(def_id.expect_local());
627+
let node = hir_map.find(hir_id);
628+
let hir_id = if let Some(hir::Node::Item(item)) = node
629+
&& let hir::ItemKind::Fn(.., body_id) = item.kind
630+
{
631+
let body = hir_map.body(body_id);
632+
let mut v = BindingFinder {
633+
span: err_label_span,
634+
hir_id: None,
635+
};
635636
v.visit_body(body);
636-
break v.hir_id;
637+
v.hir_id
638+
} else {
639+
None
637640
};
638-
if let Some(hir_id) = pat
641+
if let Some(hir_id) = hir_id
639642
&& let Some(hir::Node::Local(local)) = hir_map.find(hir_id)
640643
{
641644
let (changing, span, sugg) = match local.ty {

0 commit comments

Comments
 (0)