@@ -1950,38 +1950,35 @@ impl<'tcx> LifetimeContext<'_, 'tcx> {
1950
1950
}
1951
1951
1952
1952
crate fn report_elided_lifetime_in_ty ( & self , lifetime_refs : & [ & hir:: Lifetime ] ) {
1953
- let missing_lifetimes = lifetime_refs
1954
- . iter ( )
1955
- . filter ( |a| matches ! ( a, hir:: Lifetime { name: hir:: LifetimeName :: ImplicitMissing , .. } ) )
1956
- . count ( ) ;
1957
-
1958
- if missing_lifetimes > 0 {
1959
- let mut spans: Vec < _ > = lifetime_refs. iter ( ) . map ( |lt| lt. span ) . collect ( ) ;
1960
- spans. sort ( ) ;
1961
- let mut spans_dedup = spans. clone ( ) ;
1962
- spans_dedup. dedup ( ) ;
1963
- let spans_with_counts: Vec < _ > = spans_dedup
1964
- . into_iter ( )
1965
- . map ( |sp| ( sp, spans. iter ( ) . filter ( |nsp| * nsp == & sp) . count ( ) ) )
1966
- . collect ( ) ;
1953
+ let Some ( missing_lifetime) = lifetime_refs. iter ( ) . find ( |lt| {
1954
+ lt. name == hir:: LifetimeName :: ImplicitMissing
1955
+ } ) else { return } ;
1956
+
1957
+ let mut spans: Vec < _ > = lifetime_refs. iter ( ) . map ( |lt| lt. span ) . collect ( ) ;
1958
+ spans. sort ( ) ;
1959
+ let mut spans_dedup = spans. clone ( ) ;
1960
+ spans_dedup. dedup ( ) ;
1961
+ let spans_with_counts: Vec < _ > = spans_dedup
1962
+ . into_iter ( )
1963
+ . map ( |sp| ( sp, spans. iter ( ) . filter ( |nsp| * nsp == & sp) . count ( ) ) )
1964
+ . collect ( ) ;
1967
1965
1968
- self . tcx . struct_span_lint_hir (
1969
- rustc_session:: lint:: builtin:: ELIDED_LIFETIMES_IN_PATHS ,
1970
- hir:: CRATE_HIR_ID ,
1971
- spans,
1972
- |lint| {
1973
- let mut db = lint. build ( "hidden lifetime parameters in types are deprecated" ) ;
1974
- self . add_missing_lifetime_specifiers_label (
1975
- & mut db,
1976
- spans_with_counts,
1977
- & FxHashSet :: from_iter ( [ kw:: UnderscoreLifetime ] ) ,
1978
- Vec :: new ( ) ,
1979
- & [ ] ,
1980
- ) ;
1981
- db. emit ( )
1982
- } ,
1983
- ) ;
1984
- }
1966
+ self . tcx . struct_span_lint_hir (
1967
+ rustc_session:: lint:: builtin:: ELIDED_LIFETIMES_IN_PATHS ,
1968
+ missing_lifetime. hir_id ,
1969
+ spans,
1970
+ |lint| {
1971
+ let mut db = lint. build ( "hidden lifetime parameters in types are deprecated" ) ;
1972
+ self . add_missing_lifetime_specifiers_label (
1973
+ & mut db,
1974
+ spans_with_counts,
1975
+ & FxHashSet :: from_iter ( [ kw:: UnderscoreLifetime ] ) ,
1976
+ Vec :: new ( ) ,
1977
+ & [ ] ,
1978
+ ) ;
1979
+ db. emit ( )
1980
+ } ,
1981
+ ) ;
1985
1982
}
1986
1983
1987
1984
// FIXME(const_generics): This patches over an ICE caused by non-'static lifetimes in const
0 commit comments