From 54f73115878a46d8591bfd6689e0a9fc60d89d43 Mon Sep 17 00:00:00 2001 From: Matthew Jasper Date: Sun, 9 Sep 2018 19:43:46 +0100 Subject: Suggest a let binding to extend temporary lifetimes with NLL --- src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.nll.stderr | 1 + src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue.nll.stderr | 2 ++ src/test/ui/issues/issue-36082.ast.nll.stderr | 2 ++ src/test/ui/issues/issue-36082.mir.stderr | 2 ++ src/test/ui/issues/issue-36082.rs | 1 + src/test/ui/lifetimes/borrowck-let-suggestion.nll.stderr | 1 + src/test/ui/nll/borrowed-temporary-error.stderr | 2 ++ src/test/ui/regions/regions-var-type-out-of-scope.nll.stderr | 1 + src/test/ui/span/borrowck-let-suggestion-suffixes.nll.stderr | 6 ++++++ src/test/ui/span/borrowck-ref-into-rvalue.nll.stderr | 2 ++ src/test/ui/span/issue-15480.nll.stderr | 2 ++ src/test/ui/span/regions-close-over-borrowed-ref-in-obj.nll.stderr | 2 ++ src/test/ui/span/slice-borrow.nll.stderr | 1 + 13 files changed, 25 insertions(+) (limited to 'src/test') diff --git a/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.nll.stderr b/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.nll.stderr index 8f42fb45627..eee3f9bd5c1 100644 --- a/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.nll.stderr +++ b/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.nll.stderr @@ -8,6 +8,7 @@ LL | let x = defer(&vec!["Goodbye", "world!"]); LL | x.x[0]; | ------ borrow later used here | + = note: consider using a `let` binding to create a longer lived value = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) error: aborting due to previous error diff --git a/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue.nll.stderr b/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue.nll.stderr index 04f74af4114..ebf229696d8 100644 --- a/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue.nll.stderr +++ b/src/test/ui/borrowck/borrowck-borrowed-uniq-rvalue.nll.stderr @@ -8,6 +8,8 @@ LL | buggy_map.insert(42, &*Box::new(1)); //~ ERROR borrowed value does not ... LL | buggy_map.insert(43, &*tmp); | --------- borrow later used here + | + = note: consider using a `let` binding to create a longer lived value error: aborting due to previous error diff --git a/src/test/ui/issues/issue-36082.ast.nll.stderr b/src/test/ui/issues/issue-36082.ast.nll.stderr index cf280bd80b2..e02f21f6e12 100644 --- a/src/test/ui/issues/issue-36082.ast.nll.stderr +++ b/src/test/ui/issues/issue-36082.ast.nll.stderr @@ -8,6 +8,8 @@ LL | let val: &_ = x.borrow().0; ... LL | println!("{}", val); | --- borrow later used here + | + = note: consider using a `let` binding to create a longer lived value error: aborting due to previous error diff --git a/src/test/ui/issues/issue-36082.mir.stderr b/src/test/ui/issues/issue-36082.mir.stderr index cf280bd80b2..e02f21f6e12 100644 --- a/src/test/ui/issues/issue-36082.mir.stderr +++ b/src/test/ui/issues/issue-36082.mir.stderr @@ -8,6 +8,8 @@ LL | let val: &_ = x.borrow().0; ... LL | println!("{}", val); | --- borrow later used here + | + = note: consider using a `let` binding to create a longer lived value error: aborting due to previous error diff --git a/src/test/ui/issues/issue-36082.rs b/src/test/ui/issues/issue-36082.rs index ed6a2f85fbe..579ec4d923b 100644 --- a/src/test/ui/issues/issue-36082.rs +++ b/src/test/ui/issues/issue-36082.rs @@ -28,6 +28,7 @@ fn main() { //[mir]~^^^^^ ERROR borrowed value does not live long enough [E0597] //[mir]~| NOTE temporary value does not live long enough //[mir]~| NOTE temporary value only lives until here + //[mir]~| NOTE consider using a `let` binding to create a longer lived value println!("{}", val); //[mir]~^ borrow later used here } diff --git a/src/test/ui/lifetimes/borrowck-let-suggestion.nll.stderr b/src/test/ui/lifetimes/borrowck-let-suggestion.nll.stderr index a485c80f3b0..a8a1b33c925 100644 --- a/src/test/ui/lifetimes/borrowck-let-suggestion.nll.stderr +++ b/src/test/ui/lifetimes/borrowck-let-suggestion.nll.stderr @@ -9,6 +9,7 @@ LL | //~^ ERROR borrowed value does not live long enough LL | x.use_mut(); | - borrow later used here | + = note: consider using a `let` binding to create a longer lived value = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) error: aborting due to previous error diff --git a/src/test/ui/nll/borrowed-temporary-error.stderr b/src/test/ui/nll/borrowed-temporary-error.stderr index 37746a173eb..8b69c57d376 100644 --- a/src/test/ui/nll/borrowed-temporary-error.stderr +++ b/src/test/ui/nll/borrowed-temporary-error.stderr @@ -8,6 +8,8 @@ LL | }); | - temporary value only lives until here LL | println!("{:?}", x); | - borrow later used here + | + = note: consider using a `let` binding to create a longer lived value error: aborting due to previous error diff --git a/src/test/ui/regions/regions-var-type-out-of-scope.nll.stderr b/src/test/ui/regions/regions-var-type-out-of-scope.nll.stderr index 54b1a6fa970..aa744a3ae8a 100644 --- a/src/test/ui/regions/regions-var-type-out-of-scope.nll.stderr +++ b/src/test/ui/regions/regions-var-type-out-of-scope.nll.stderr @@ -8,6 +8,7 @@ LL | x = &id(3); //~ ERROR borrowed value does not live long enough LL | assert_eq!(*x, 3); | ------------------ borrow later used here | + = note: consider using a `let` binding to create a longer lived value = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) error: aborting due to previous error diff --git a/src/test/ui/span/borrowck-let-suggestion-suffixes.nll.stderr b/src/test/ui/span/borrowck-let-suggestion-suffixes.nll.stderr index 79cfee2d01f..001eba4b039 100644 --- a/src/test/ui/span/borrowck-let-suggestion-suffixes.nll.stderr +++ b/src/test/ui/span/borrowck-let-suggestion-suffixes.nll.stderr @@ -8,6 +8,8 @@ LL | v3.push(&id('x')); // statement 6 ... LL | (v1, v2, v3, /* v4 is above. */ v5).use_ref(); | -- borrow later used here + | + = note: consider using a `let` binding to create a longer lived value error[E0597]: borrowed value does not live long enough --> $DIR/borrowck-let-suggestion-suffixes.rs:38:18 @@ -19,6 +21,8 @@ LL | v4.push(&id('y')); ... LL | v4.use_ref(); | -- borrow later used here + | + = note: consider using a `let` binding to create a longer lived value error[E0597]: borrowed value does not live long enough --> $DIR/borrowck-let-suggestion-suffixes.rs:49:14 @@ -30,6 +34,8 @@ LL | v5.push(&id('z')); ... LL | (v1, v2, v3, /* v4 is above. */ v5).use_ref(); | -- borrow later used here + | + = note: consider using a `let` binding to create a longer lived value error: aborting due to 3 previous errors diff --git a/src/test/ui/span/borrowck-ref-into-rvalue.nll.stderr b/src/test/ui/span/borrowck-ref-into-rvalue.nll.stderr index 171bb3dda66..c565842c2c0 100644 --- a/src/test/ui/span/borrowck-ref-into-rvalue.nll.stderr +++ b/src/test/ui/span/borrowck-ref-into-rvalue.nll.stderr @@ -8,6 +8,8 @@ LL | } | - temporary value only lives until here LL | println!("{}", *msg); | ---- borrow later used here + | + = note: consider using a `let` binding to create a longer lived value error: aborting due to previous error diff --git a/src/test/ui/span/issue-15480.nll.stderr b/src/test/ui/span/issue-15480.nll.stderr index 2f3f6c5efa2..8dcf486f830 100644 --- a/src/test/ui/span/issue-15480.nll.stderr +++ b/src/test/ui/span/issue-15480.nll.stderr @@ -8,6 +8,8 @@ LL | ]; ... LL | for &&x in &v { | -- borrow later used here + | + = note: consider using a `let` binding to create a longer lived value error: aborting due to previous error diff --git a/src/test/ui/span/regions-close-over-borrowed-ref-in-obj.nll.stderr b/src/test/ui/span/regions-close-over-borrowed-ref-in-obj.nll.stderr index 651296dbeaf..3788b5a3284 100644 --- a/src/test/ui/span/regions-close-over-borrowed-ref-in-obj.nll.stderr +++ b/src/test/ui/span/regions-close-over-borrowed-ref-in-obj.nll.stderr @@ -8,6 +8,8 @@ LL | } | - temporary value only lives until here LL | } | - borrow later used here, when `blah` is dropped + | + = note: consider using a `let` binding to create a longer lived value error: aborting due to previous error diff --git a/src/test/ui/span/slice-borrow.nll.stderr b/src/test/ui/span/slice-borrow.nll.stderr index aefba8324cf..4a15d8ff455 100644 --- a/src/test/ui/span/slice-borrow.nll.stderr +++ b/src/test/ui/span/slice-borrow.nll.stderr @@ -9,6 +9,7 @@ LL | } LL | y.use_ref(); | - borrow later used here | + = note: consider using a `let` binding to create a longer lived value = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) error: aborting due to previous error -- cgit 1.4.1-3-g733a5