Commit f6d1275
committed
Split
Types that contain a reference can be confusing when lifetime elision
occurs:
```rust
// Confusing
fn foo(_: &u8) -> Bar { todo!() }
// Less confusing
fn foo(_: &u8) -> Bar<'_> { todo!() }
```
However, the previous lint did not distinguish when these types were
not "tying" lifetimes across the function inputs / outputs:
```rust
// Maybe a little confusing
fn foo(_: Bar) {}
// More explicit but noisier with less obvious value
fn foo(_: Bar<'_>) {}
```
We now report different lints for each case, hopefully paving the way
to marking the first case (when lifetimes are tied together) as
warn-by-default.elided_lifetime_in_paths into tied and untied1 parent a985926 commit f6d1275
File tree
11 files changed
+582
-30
lines changed- compiler
- rustc_lint_defs/src
- rustc_lint/src
- rustc_resolve/src
- src/tools/lint-docs/src
- tests/ui
- lifetimes
- lint
- force-warn
11 files changed
+582
-30
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
303 | 303 | | |
304 | 304 | | |
305 | 305 | | |
306 | | - | |
| 306 | + | |
| 307 | + | |
307 | 308 | | |
308 | 309 | | |
309 | 310 | | |
| |||
313 | 314 | | |
314 | 315 | | |
315 | 316 | | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
316 | 323 | | |
317 | 324 | | |
318 | | - | |
319 | 325 | | |
320 | 326 | | |
321 | 327 | | |
| |||
329 | 335 | | |
330 | 336 | | |
331 | 337 | | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
332 | 341 | | |
333 | 342 | | |
334 | 343 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
| 42 | + | |
| 43 | + | |
43 | 44 | | |
44 | 45 | | |
45 | 46 | | |
| |||
1730 | 1731 | | |
1731 | 1732 | | |
1732 | 1733 | | |
1733 | | - | |
1734 | | - | |
| 1734 | + | |
| 1735 | + | |
| 1736 | + | |
1735 | 1737 | | |
1736 | 1738 | | |
1737 | 1739 | | |
1738 | 1740 | | |
1739 | | - | |
| 1741 | + | |
1740 | 1742 | | |
1741 | 1743 | | |
1742 | 1744 | | |
1743 | 1745 | | |
1744 | 1746 | | |
1745 | | - | |
| 1747 | + | |
| 1748 | + | |
1746 | 1749 | | |
1747 | 1750 | | |
1748 | 1751 | | |
| |||
1759 | 1762 | | |
1760 | 1763 | | |
1761 | 1764 | | |
1762 | | - | |
| 1765 | + | |
1763 | 1766 | | |
1764 | 1767 | | |
1765 | 1768 | | |
1766 | 1769 | | |
1767 | 1770 | | |
| 1771 | + | |
| 1772 | + | |
| 1773 | + | |
| 1774 | + | |
| 1775 | + | |
| 1776 | + | |
| 1777 | + | |
| 1778 | + | |
| 1779 | + | |
| 1780 | + | |
| 1781 | + | |
| 1782 | + | |
| 1783 | + | |
| 1784 | + | |
| 1785 | + | |
| 1786 | + | |
| 1787 | + | |
| 1788 | + | |
| 1789 | + | |
| 1790 | + | |
| 1791 | + | |
| 1792 | + | |
| 1793 | + | |
| 1794 | + | |
| 1795 | + | |
| 1796 | + | |
| 1797 | + | |
| 1798 | + | |
| 1799 | + | |
| 1800 | + | |
| 1801 | + | |
| 1802 | + | |
| 1803 | + | |
| 1804 | + | |
| 1805 | + | |
| 1806 | + | |
| 1807 | + | |
| 1808 | + | |
| 1809 | + | |
1768 | 1810 | | |
1769 | 1811 | | |
1770 | 1812 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
646 | 646 | | |
647 | 647 | | |
648 | 648 | | |
649 | | - | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
650 | 667 | | |
651 | 668 | | |
652 | 669 | | |
| |||
694 | 711 | | |
695 | 712 | | |
696 | 713 | | |
697 | | - | |
| 714 | + | |
698 | 715 | | |
699 | 716 | | |
700 | 717 | | |
| |||
1742 | 1759 | | |
1743 | 1760 | | |
1744 | 1761 | | |
| 1762 | + | |
| 1763 | + | |
1745 | 1764 | | |
1746 | 1765 | | |
1747 | 1766 | | |
| |||
1953 | 1972 | | |
1954 | 1973 | | |
1955 | 1974 | | |
1956 | | - | |
1957 | | - | |
1958 | | - | |
1959 | | - | |
1960 | | - | |
1961 | | - | |
1962 | | - | |
| 1975 | + | |
| 1976 | + | |
| 1977 | + | |
1963 | 1978 | | |
1964 | | - | |
1965 | | - | |
| 1979 | + | |
| 1980 | + | |
| 1981 | + | |
| 1982 | + | |
| 1983 | + | |
| 1984 | + | |
| 1985 | + | |
| 1986 | + | |
1966 | 1987 | | |
1967 | 1988 | | |
1968 | 1989 | | |
| |||
2024 | 2045 | | |
2025 | 2046 | | |
2026 | 2047 | | |
2027 | | - | |
2028 | | - | |
2029 | | - | |
2030 | | - | |
| 2048 | + | |
| 2049 | + | |
| 2050 | + | |
| 2051 | + | |
| 2052 | + | |
| 2053 | + | |
| 2054 | + | |
| 2055 | + | |
| 2056 | + | |
| 2057 | + | |
| 2058 | + | |
| 2059 | + | |
| 2060 | + | |
| 2061 | + | |
| 2062 | + | |
| 2063 | + | |
| 2064 | + | |
| 2065 | + | |
| 2066 | + | |
| 2067 | + | |
| 2068 | + | |
| 2069 | + | |
| 2070 | + | |
2031 | 2071 | | |
2032 | 2072 | | |
2033 | 2073 | | |
2034 | 2074 | | |
2035 | | - | |
2036 | | - | |
| 2075 | + | |
| 2076 | + | |
| 2077 | + | |
| 2078 | + | |
| 2079 | + | |
| 2080 | + | |
| 2081 | + | |
| 2082 | + | |
| 2083 | + | |
| 2084 | + | |
| 2085 | + | |
| 2086 | + | |
| 2087 | + | |
| 2088 | + | |
| 2089 | + | |
| 2090 | + | |
| 2091 | + | |
| 2092 | + | |
| 2093 | + | |
| 2094 | + | |
| 2095 | + | |
| 2096 | + | |
| 2097 | + | |
| 2098 | + | |
| 2099 | + | |
| 2100 | + | |
| 2101 | + | |
| 2102 | + | |
| 2103 | + | |
| 2104 | + | |
| 2105 | + | |
| 2106 | + | |
| 2107 | + | |
| 2108 | + | |
| 2109 | + | |
| 2110 | + | |
| 2111 | + | |
| 2112 | + | |
| 2113 | + | |
| 2114 | + | |
| 2115 | + | |
| 2116 | + | |
2037 | 2117 | | |
2038 | | - | |
2039 | | - | |
| 2118 | + | |
2040 | 2119 | | |
2041 | 2120 | | |
2042 | | - | |
| 2121 | + | |
2043 | 2122 | | |
2044 | 2123 | | |
2045 | 2124 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| |||
0 commit comments