The FIXME was added in 46984 when the diagnostic message looked like
this:
// FIXME(#46983): error message should be better
&s.0 //~ ERROR free region `` does not outlive free region `'static`
The message was improved in 90667 and now looks like this:
&s.0 //~ ERROR lifetime may not live long enough
but the FIXME was not removed. The issue 46983 about that diagnostics
should be improved has been closed. We can remove the FIXME now.
19 lines
441 B
Rust
19 lines
441 B
Rust
// Test that NLL analysis propagates lifetimes correctly through
|
|
// field accesses, Box accesses, etc.
|
|
|
|
fn foo(s: &mut (i32,)) -> i32 {
|
|
let t = &mut *s; // this borrow should last for the entire function
|
|
let x = &t.0;
|
|
*s = (2,); //~ ERROR cannot assign to `*s`
|
|
*x
|
|
}
|
|
|
|
fn bar(s: &Box<(i32,)>) -> &'static i32 {
|
|
&s.0 //~ ERROR lifetime may not live long enough
|
|
}
|
|
|
|
fn main() {
|
|
foo(&mut (0,));
|
|
bar(&Box::new((1,)));
|
|
}
|