Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

One of the examples in the paper has some code that you can't actually write in Rust, it's close to this:

    let msg: &'msg str = "Hello World";
You can write something similar and allow the compiler to infer the lifetime:

    let msg: &'_ str = "Hello World";
I often find myself declaring the type when I get into confusing type issues in Rust, but you can't do that as easily with lifetimes. With non-lexical lifetimes this has been less of an issue, but still there are times when I would like to be able to declare the lifetime like the first example.

This error example shows the valid uses of lifetimes: https://doc.rust-lang.org/nightly/error-index.html#E0261



I believe you can actually name the lifetime of a block, via the same mechanism that makes labeled breaks and continues possible.


I think that was just a proposal that never got accepted? Never see it in real code either way.


Do you have an example of what you mean?


Like this:

  'a: {
      let a_var: u32 = 42;
      let a_ref: &'a u32 = &a_var;
  } //    ^^^^^ only valid in 'a: {}


That doesn't compile with "use of undeclared lifetime name `'a`"


You can name loop labels like this, but you cannot use them to introduce actual lifetimes, that’s right.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: