mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 07:14:28 +00:00
Don't suggest adding 'static
lifetime to arguments
Fixes #69350 This is almost always the wrong this to do
This commit is contained in:
parent
31bd868c39
commit
bc6330d47a
@ -114,12 +114,16 @@ impl<'a, 'tcx> NiceRegionError<'a, 'tcx> {
|
||||
);
|
||||
|
||||
diag.span_label(span, format!("lifetime `{}` required", named));
|
||||
diag.span_suggestion(
|
||||
new_ty_span,
|
||||
&format!("add explicit lifetime `{}` to {}", named, span_label_var),
|
||||
new_ty.to_string(),
|
||||
Applicability::Unspecified,
|
||||
);
|
||||
// Suggesting `'static` is nearly always incorrect, and can steer users
|
||||
// down the wrong path.
|
||||
if *named != ty::ReStatic {
|
||||
diag.span_suggestion(
|
||||
new_ty_span,
|
||||
&format!("add explicit lifetime `{}` to {}", named, span_label_var),
|
||||
new_ty.to_string(),
|
||||
Applicability::Unspecified,
|
||||
);
|
||||
}
|
||||
|
||||
Some(diag)
|
||||
}
|
||||
|
@ -1,8 +1,6 @@
|
||||
error[E0621]: explicit lifetime required in the type of `x`
|
||||
--> $DIR/closure-bounds-static-cant-capture-borrowed.rs:5:5
|
||||
|
|
||||
LL | fn foo(x: &()) {
|
||||
| --- help: add explicit lifetime `'static` to the type of `x`: `&'static ()`
|
||||
LL | / bar(|| {
|
||||
LL | |
|
||||
LL | | let _ = x;
|
||||
|
@ -1,8 +1,6 @@
|
||||
error[E0621]: explicit lifetime required in the type of `x`
|
||||
--> $DIR/closure-bounds-static-cant-capture-borrowed.rs:5:5
|
||||
|
|
||||
LL | fn foo(x: &()) {
|
||||
| --- help: add explicit lifetime `'static` to the type of `x`: `&'static ()`
|
||||
LL | bar(|| {
|
||||
| ^^^ lifetime `'static` required
|
||||
|
||||
|
@ -1,9 +1,6 @@
|
||||
error[E0621]: explicit lifetime required in the type of `x`
|
||||
--> $DIR/generator-region-requirements.rs:12:51
|
||||
|
|
||||
LL | fn dangle(x: &mut i32) -> &'static mut i32 {
|
||||
| -------- help: add explicit lifetime `'static` to the type of `x`: `&'static mut i32`
|
||||
...
|
||||
LL | GeneratorState::Complete(c) => return c,
|
||||
| ^ lifetime `'static` required
|
||||
|
||||
|
@ -1,24 +1,18 @@
|
||||
error[E0621]: explicit lifetime required in the type of `x`
|
||||
--> $DIR/projection-type-lifetime-mismatch.rs:18:5
|
||||
|
|
||||
LL | fn f(x: &impl for<'a> X<Y<'a> = &'a ()>) -> &'static () {
|
||||
| ------------------------------- help: add explicit lifetime `'static` to the type of `x`: `&'static impl for<'a> X<Y<'a> = &'a ()>`
|
||||
LL | x.m()
|
||||
| ^^^^^ lifetime `'static` required
|
||||
|
||||
error[E0621]: explicit lifetime required in the type of `x`
|
||||
--> $DIR/projection-type-lifetime-mismatch.rs:23:5
|
||||
|
|
||||
LL | fn g<T: for<'a> X<Y<'a> = &'a ()>>(x: &T) -> &'static () {
|
||||
| -- help: add explicit lifetime `'static` to the type of `x`: `&'static T`
|
||||
LL | x.m()
|
||||
| ^^^^^ lifetime `'static` required
|
||||
|
||||
error[E0621]: explicit lifetime required in the type of `x`
|
||||
--> $DIR/projection-type-lifetime-mismatch.rs:28:5
|
||||
|
|
||||
LL | fn h(x: &()) -> &'static () {
|
||||
| --- help: add explicit lifetime `'static` to the type of `x`: `&'static ()`
|
||||
LL | x.m()
|
||||
| ^^^^^ lifetime `'static` required
|
||||
|
||||
|
@ -1,8 +1,6 @@
|
||||
error[E0621]: explicit lifetime required in the type of `x`
|
||||
--> $DIR/issue-46983.rs:2:5
|
||||
|
|
||||
LL | fn foo(x: &u32) -> &'static u32 {
|
||||
| ---- help: add explicit lifetime `'static` to the type of `x`: `&'static u32`
|
||||
LL | &*x
|
||||
| ^^^ lifetime `'static` required
|
||||
|
||||
|
@ -1,8 +1,6 @@
|
||||
error[E0621]: explicit lifetime required in the type of `x`
|
||||
--> $DIR/region-lbr-anon-does-not-outlive-static.rs:9:5
|
||||
|
|
||||
LL | fn foo(x: &u32) -> &'static u32 {
|
||||
| ---- help: add explicit lifetime `ReStatic` to the type of `x`: `&ReStatic u32`
|
||||
LL | &*x
|
||||
| ^^^ lifetime `ReStatic` required
|
||||
|
||||
|
@ -12,9 +12,6 @@ LL | *x
|
||||
error[E0621]: explicit lifetime required in the type of `s`
|
||||
--> $DIR/guarantor-issue-46974.rs:15:5
|
||||
|
|
||||
LL | fn bar(s: &Box<(i32,)>) -> &'static i32 {
|
||||
| ------------ help: add explicit lifetime `'static` to the type of `s`: `&'static Box<(i32,)>`
|
||||
LL | // FIXME(#46983): error message should be better
|
||||
LL | &s.0
|
||||
| ^^^^ lifetime `'static` required
|
||||
|
||||
|
@ -11,17 +11,12 @@ LL | t
|
||||
error[E0621]: explicit lifetime required in the type of `u`
|
||||
--> $DIR/regions-static-bound.rs:14:5
|
||||
|
|
||||
LL | fn error(u: &(), v: &()) {
|
||||
| --- help: add explicit lifetime `'static` to the type of `u`: `&'static ()`
|
||||
LL | static_id(&u);
|
||||
| ^^^^^^^^^^^^^ lifetime `'static` required
|
||||
|
||||
error[E0621]: explicit lifetime required in the type of `v`
|
||||
--> $DIR/regions-static-bound.rs:16:5
|
||||
|
|
||||
LL | fn error(u: &(), v: &()) {
|
||||
| --- help: add explicit lifetime `'static` to the type of `v`: `&'static ()`
|
||||
...
|
||||
LL | static_id_indirect(&v);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ lifetime `'static` required
|
||||
|
||||
|
@ -14,17 +14,12 @@ LL | fn static_id_wrong_way<'a>(t: &'a ()) -> &'static () where 'static: 'a {
|
||||
error[E0621]: explicit lifetime required in the type of `u`
|
||||
--> $DIR/regions-static-bound.rs:14:5
|
||||
|
|
||||
LL | fn error(u: &(), v: &()) {
|
||||
| --- help: add explicit lifetime `'static` to the type of `u`: `&'static ()`
|
||||
LL | static_id(&u);
|
||||
| ^^^^^^^^^ lifetime `'static` required
|
||||
|
||||
error[E0621]: explicit lifetime required in the type of `v`
|
||||
--> $DIR/regions-static-bound.rs:16:5
|
||||
|
|
||||
LL | fn error(u: &(), v: &()) {
|
||||
| --- help: add explicit lifetime `'static` to the type of `v`: `&'static ()`
|
||||
...
|
||||
LL | static_id_indirect(&v);
|
||||
| ^^^^^^^^^^^^^^^^^^ lifetime `'static` required
|
||||
|
||||
|
@ -11,17 +11,12 @@ LL | t
|
||||
error[E0621]: explicit lifetime required in the type of `u`
|
||||
--> $DIR/regions-static-bound.rs:14:5
|
||||
|
|
||||
LL | fn error(u: &(), v: &()) {
|
||||
| --- help: add explicit lifetime `'static` to the type of `u`: `&'static ()`
|
||||
LL | static_id(&u);
|
||||
| ^^^^^^^^^^^^^ lifetime `'static` required
|
||||
|
||||
error[E0621]: explicit lifetime required in the type of `v`
|
||||
--> $DIR/regions-static-bound.rs:16:5
|
||||
|
|
||||
LL | fn error(u: &(), v: &()) {
|
||||
| --- help: add explicit lifetime `'static` to the type of `v`: `&'static ()`
|
||||
...
|
||||
LL | static_id_indirect(&v);
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^ lifetime `'static` required
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user