From 1662daa23d77d77107743926efee72e8254d8f35 Mon Sep 17 00:00:00 2001 From: csmoe <35686186+csmoe@users.noreply.github.com> Date: Fri, 1 Jun 2018 12:08:31 +0800 Subject: [PATCH] lint with ref_span --- src/librustc_borrowck/borrowck/mod.rs | 12 +++++------- src/test/ui/suggestions/issue-51244.stderr | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/librustc_borrowck/borrowck/mod.rs b/src/librustc_borrowck/borrowck/mod.rs index 072f94661e42..f09feac51fcf 100644 --- a/src/librustc_borrowck/borrowck/mod.rs +++ b/src/librustc_borrowck/borrowck/mod.rs @@ -1209,14 +1209,12 @@ impl<'a, 'tcx> BorrowckCtxt<'a, 'tcx> { let let_span = self.tcx.hir.span(node_id); match self.local_binding_mode(node_id) { ty::BindByReference(..) => { - let snippet = self.tcx.sess.codemap().span_to_snippet(let_span); - if let Ok(snippet) = snippet { + let ref_span = self.tcx.sess.codemap().span_until_whitespace(let_span); + if let Ok(_) = self.tcx.sess.codemap().span_to_snippet(let_span) { db.span_label( - let_span, - format!("consider changing this to `{}`", - snippet.replacen("ref ", "ref mut ", 1)) - ); - } + ref_span, + format!("consider changing this to `{}`", "ref mut")); + }; } ty::BindByValue(..) => { if let (Some(local_ty), is_implicit_self) = self.local_ty(node_id) { diff --git a/src/test/ui/suggestions/issue-51244.stderr b/src/test/ui/suggestions/issue-51244.stderr index b6663c3789eb..f653a2a3359b 100644 --- a/src/test/ui/suggestions/issue-51244.stderr +++ b/src/test/ui/suggestions/issue-51244.stderr @@ -2,7 +2,7 @@ error[E0594]: cannot assign to immutable borrowed content `*my_ref` --> $DIR/issue-51244.rs:13:5 | LL | let ref my_ref @ _ = 0; - | -------------- consider changing this to `ref mut my_ref @ _` + | --- consider changing this to `ref mut` LL | *my_ref = 0; | ^^^^^^^^^^^ cannot borrow as mutable