diff options
| author | csmoe <35686186+csmoe@users.noreply.github.com> | 2018-06-14 09:12:50 +0800 |
|---|---|---|
| committer | ashtneoi <ashtneoi@gmail.com> | 2018-07-12 22:51:30 -0700 |
| commit | 7a70140ed5a3fb5aa747d219f19f8b1d55812807 (patch) | |
| tree | 5bb221829d7f4b3341ef57578ea99fe66df71c53 | |
| parent | 8932684ccc3b4a24a301bd68a6c21a182dfd6028 (diff) | |
| download | rust-7a70140ed5a3fb5aa747d219f19f8b1d55812807.tar.gz rust-7a70140ed5a3fb5aa747d219f19f8b1d55812807.zip | |
span_suggestion
| -rw-r--r-- | src/librustc_borrowck/borrowck/mod.rs | 5 | ||||
| -rw-r--r-- | src/test/ui/nll/issue-51244.rs | 16 | ||||
| -rw-r--r-- | src/test/ui/nll/issue-51244.stderr (renamed from src/test/ui/suggestions/issue-51244.nll.stderr) | 4 | ||||
| -rw-r--r-- | src/test/ui/rfc-2005-default-binding-mode/enum.stderr | 6 | ||||
| -rw-r--r-- | src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr | 6 | ||||
| -rw-r--r-- | src/test/ui/suggestions/issue-51244.stderr | 2 |
6 files changed, 28 insertions, 11 deletions
diff --git a/src/librustc_borrowck/borrowck/mod.rs b/src/librustc_borrowck/borrowck/mod.rs index aa00ccd1f08..6a42189fb15 100644 --- a/src/librustc_borrowck/borrowck/mod.rs +++ b/src/librustc_borrowck/borrowck/mod.rs @@ -1215,9 +1215,10 @@ impl<'a, 'tcx> BorrowckCtxt<'a, 'tcx> { } else { snippet }; - db.span_label( + db.span_suggestion( let_span, - format!("consider changing this to `{}`", replace_str) + "use a mutable reference instead", + replace_str, ); }; } diff --git a/src/test/ui/nll/issue-51244.rs b/src/test/ui/nll/issue-51244.rs new file mode 100644 index 00000000000..56d9449c467 --- /dev/null +++ b/src/test/ui/nll/issue-51244.rs @@ -0,0 +1,16 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(nll)] + +fn main() { + let ref my_ref @ _ = 0; + *my_ref = 0; //~ ERROR cannot assign to data in a `&` reference [E0594] +} diff --git a/src/test/ui/suggestions/issue-51244.nll.stderr b/src/test/ui/nll/issue-51244.stderr index 95b71c41cfa..f1f47fc61ce 100644 --- a/src/test/ui/suggestions/issue-51244.nll.stderr +++ b/src/test/ui/nll/issue-51244.stderr @@ -1,9 +1,9 @@ error[E0594]: cannot assign to data in a `&` reference - --> $DIR/issue-51244.rs:13:5 + --> $DIR/issue-51244.rs:15:5 | LL | let ref my_ref @ _ = 0; | -------------- help: consider changing this to be a mutable reference: `&mut ef my_ref @ _` -LL | *my_ref = 0; //~ ERROR cannot assign to immutable borrowed content `*my_ref` [E0594] +LL | *my_ref = 0; //~ ERROR cannot assign to data in a `&` reference [E0594] | ^^^^^^^^^^^ error: aborting due to previous error diff --git a/src/test/ui/rfc-2005-default-binding-mode/enum.stderr b/src/test/ui/rfc-2005-default-binding-mode/enum.stderr index a7f3b507508..26d51e93381 100644 --- a/src/test/ui/rfc-2005-default-binding-mode/enum.stderr +++ b/src/test/ui/rfc-2005-default-binding-mode/enum.stderr @@ -2,7 +2,7 @@ error[E0594]: cannot assign to immutable borrowed content `*x` --> $DIR/enum.rs:19:5 | LL | let Wrap(x) = &Wrap(3); - | - consider changing this to `x` + | - help: use a mutable reference instead: `x` LL | *x += 1; //~ ERROR cannot assign to immutable | ^^^^^^^ cannot borrow as mutable @@ -10,7 +10,7 @@ error[E0594]: cannot assign to immutable borrowed content `*x` --> $DIR/enum.rs:23:9 | LL | if let Some(x) = &Some(3) { - | - consider changing this to `x` + | - help: use a mutable reference instead: `x` LL | *x += 1; //~ ERROR cannot assign to immutable | ^^^^^^^ cannot borrow as mutable @@ -18,7 +18,7 @@ error[E0594]: cannot assign to immutable borrowed content `*x` --> $DIR/enum.rs:29:9 | LL | while let Some(x) = &Some(3) { - | - consider changing this to `x` + | - help: use a mutable reference instead: `x` LL | *x += 1; //~ ERROR cannot assign to immutable | ^^^^^^^ cannot borrow as mutable diff --git a/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr b/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr index f2b9bde41ab..2f5eb8a3d8e 100644 --- a/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr +++ b/src/test/ui/rfc-2005-default-binding-mode/explicit-mut.stderr @@ -2,7 +2,7 @@ error[E0594]: cannot assign to immutable borrowed content `*n` --> $DIR/explicit-mut.rs:17:13 | LL | Some(n) => { - | - consider changing this to `n` + | - help: use a mutable reference instead: `n` LL | *n += 1; //~ ERROR cannot assign to immutable | ^^^^^^^ cannot borrow as mutable @@ -10,7 +10,7 @@ error[E0594]: cannot assign to immutable borrowed content `*n` --> $DIR/explicit-mut.rs:25:13 | LL | Some(n) => { - | - consider changing this to `n` + | - help: use a mutable reference instead: `n` LL | *n += 1; //~ ERROR cannot assign to immutable | ^^^^^^^ cannot borrow as mutable @@ -18,7 +18,7 @@ error[E0594]: cannot assign to immutable borrowed content `*n` --> $DIR/explicit-mut.rs:33:13 | LL | Some(n) => { - | - consider changing this to `n` + | - help: use a mutable reference instead: `n` LL | *n += 1; //~ ERROR cannot assign to immutable | ^^^^^^^ cannot borrow as mutable diff --git a/src/test/ui/suggestions/issue-51244.stderr b/src/test/ui/suggestions/issue-51244.stderr index b4ce2975623..997a74295e5 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 @ _` + | -------------- help: use a mutable reference instead: `ref mut my_ref @ _` LL | *my_ref = 0; //~ ERROR cannot assign to immutable borrowed content `*my_ref` [E0594] | ^^^^^^^^^^^ cannot borrow as mutable |
