@@ -151,23 +151,18 @@ impl Lifetime {
151151 pub fn suggestion ( & self , new_lifetime : & str ) -> ( Span , String ) {
152152 debug_assert ! ( new_lifetime. starts_with( '\'' ) ) ;
153153
154- if self . ident . name == kw:: Empty {
155- if self . ident . span . is_empty ( ) {
156- // The user wrote `Path<T>`, and omitted the `'_,`.
157- ( self . ident . span , format ! ( "{new_lifetime}, " ) )
158- } else {
159- // The user wrote `Path` and omitted the `<'_>`.
160- ( self . ident . span . shrink_to_hi ( ) , format ! ( "<{new_lifetime}>" ) )
161- }
162- } else if self . res == LifetimeName :: ImplicitObjectLifetimeDefault {
163- // The user wrote `dyn Trait` and omitted the `+ '_`.
164- ( self . ident . span , format ! ( "+ {new_lifetime}" ) )
165- } else if self . ident . span . is_empty ( ) {
154+ match ( self . ident . name . is_empty ( ) , self . ident . span . is_empty ( ) ) {
155+ // The user wrote `Path<T>`, and omitted the `'_,`.
156+ ( true , true ) => ( self . ident . span , format ! ( "{new_lifetime}, " ) ) ,
157+
158+ // The user wrote `Path` and omitted the `<'_>`.
159+ ( true , false ) => ( self . ident . span . shrink_to_hi ( ) , format ! ( "<{new_lifetime}>" ) ) ,
160+
166161 // The user wrote `&type` or `&mut type`.
167- ( self . ident . span , format ! ( "{new_lifetime} " ) )
168- } else {
162+ ( false , true ) => ( self . ident . span , format ! ( "{new_lifetime} " ) ) ,
163+
169164 // The user wrote `'a` or `'_`.
170- ( self . ident . span , format ! ( "{new_lifetime}" ) )
165+ ( false , false ) => ( self . ident . span , format ! ( "{new_lifetime}" ) ) ,
171166 }
172167 }
173168}
0 commit comments