Files
rust/tests/ui/issues
bors ccf3198de3 Auto merge of #138677 - shepmaster:consistent-elided-lifetime-syntax, r=traviscross,jieyouxu
Add a new `mismatched-lifetime-syntaxes` lint

The lang-team [discussed this](https://hackmd.io/nf4ZUYd7Rp6rq-1svJZSaQ) and I attempted to [summarize](https://github.com/rust-lang/rust/pull/120808#issuecomment-2701863833) their decision. The summary-of-the-summary is:

- Using two different kinds of syntax for elided lifetimes is confusing. In rare cases, it may even [lead to unsound code](https://github.com/rust-lang/rust/issues/48686)! Some examples:

    ```rust
    // Lint will warn about these
    fn(v: ContainsLifetime) -> ContainsLifetime<'_>;
    fn(&'static u8) -> &u8;
    ```

- Matching up references with no lifetime syntax, references with anonymous lifetime syntax, and paths with anonymous lifetime syntax is an exception to the simplest possible rule:

    ```rust
    // Lint will not warn about these
    fn(&u8) -> &'_ u8;
    fn(&'_ u8) -> &u8;
    fn(&u8) -> ContainsLifetime<'_>;
    ```

- Having a lint for consistent syntax of elided lifetimes will make the [future goal](https://github.com/rust-lang/rust/issues/91639) of warning-by-default for paths participating in elision much simpler.

---

This new lint attempts to accomplish the goal of enforcing consistent syntax. In the process, it supersedes and replaces the existing `elided-named-lifetimes` lint, which means it starts out life as warn-by-default.
2025-06-05 19:49:30 +00:00
..
2024-02-07 10:42:01 +08:00
2024-01-05 10:00:59 +00:00
2024-02-07 10:42:01 +08:00
2024-02-07 10:42:01 +08:00
2025-04-03 21:41:58 +00:00
2025-04-03 21:41:58 +00:00
2023-12-20 22:53:56 -05:00
2025-02-04 10:57:49 +00:00
2025-02-03 19:00:22 +00:00
2024-02-07 10:42:01 +08:00
2024-01-13 12:46:58 -05:00
2024-07-06 14:24:20 +02:00
2023-05-01 16:15:13 +08:00
2024-02-07 10:42:01 +08:00
2023-11-16 17:00:23 +00:00
2023-04-08 21:32:55 +00:00
2024-01-05 10:00:59 +00:00
2024-01-13 12:46:58 -05:00
2023-11-16 17:00:23 +00:00
2024-02-07 10:42:01 +08:00
2024-07-10 17:15:02 -04:00
2024-07-10 17:15:02 -04:00
2024-04-29 14:53:38 +02:00
2023-01-15 19:46:20 +00:00
2023-01-15 19:46:20 +00:00
2024-11-22 02:32:26 +00:00
2024-11-22 02:32:26 +00:00
2023-06-26 08:56:32 +00:00
2023-11-24 21:04:51 +01:00
2024-04-22 18:48:47 +02:00