mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 15:23:46 +00:00
8a7520995c
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,)));
|
|
}
|