@@ -25,7 +25,7 @@ pub trait Cache<Id: ?Sized> {
2525 fn display < ' a > ( & self , id : & ' a Id ) -> Option < impl fmt:: Display + ' a > ;
2626}
2727
28- impl < ' b , C : Cache < Id > , Id : ?Sized > Cache < Id > for & ' b mut C {
28+ impl < C : Cache < Id > , Id : ?Sized > Cache < Id > for & mut C {
2929 type Storage = C :: Storage ;
3030
3131 fn fetch ( & mut self , id : & Id ) -> Result < & Source < Self :: Storage > , impl fmt:: Debug > {
@@ -275,7 +275,7 @@ impl<I: AsRef<str>> Source<I> {
275275impl < I : AsRef < str > > Cache < ( ) > for Source < I > {
276276 type Storage = I ;
277277
278- fn fetch ( & mut self , _: & ( ) ) -> Result < & Source < I > , impl fmt:: Debug + ' _ > {
278+ fn fetch ( & mut self , _: & ( ) ) -> Result < & Source < I > , impl fmt:: Debug > {
279279 Ok :: < _ , ( ) > ( self )
280280 }
281281 fn display < ' a > ( & self , _: & ' a ( ) ) -> Option < impl fmt:: Display + ' a > {
@@ -286,18 +286,18 @@ impl<I: AsRef<str>> Cache<()> for Source<I> {
286286impl < I : AsRef < str > > Cache < ( ) > for & ' _ Source < I > {
287287 type Storage = I ;
288288
289- fn fetch ( & mut self , _: & ( ) ) -> Result < & Source < I > , Box < dyn fmt:: Debug + ' _ > > {
290- Ok ( * self )
289+ fn fetch ( & mut self , _: & ( ) ) -> Result < & Source < I > , impl fmt:: Debug > {
290+ Ok :: < _ , ( ) > ( * self )
291291 }
292- fn display ( & self , _: & ( ) ) -> Option < Box < dyn fmt:: Display > > {
293- None
292+ fn display < ' a > ( & self , _: & ' a ( ) ) -> std :: option :: Option < impl std :: fmt:: Display + ' a > {
293+ None :: < & str >
294294 }
295295}
296296
297297impl < I : AsRef < str > , Id : fmt:: Display + Eq > Cache < Id > for ( Id , Source < I > ) {
298298 type Storage = I ;
299299
300- fn fetch ( & mut self , id : & Id ) -> Result < & Source < I > , impl fmt:: Debug + ' _ > {
300+ fn fetch ( & mut self , id : & Id ) -> Result < & Source < I > , impl fmt:: Debug > {
301301 if id == & self . 0 {
302302 Ok ( & self . 1 )
303303 } else {
@@ -312,14 +312,14 @@ impl<I: AsRef<str>, Id: fmt::Display + Eq> Cache<Id> for (Id, Source<I>) {
312312impl < I : AsRef < str > , Id : fmt:: Display + Eq > Cache < Id > for ( Id , & ' _ Source < I > ) {
313313 type Storage = I ;
314314
315- fn fetch ( & mut self , id : & Id ) -> Result < & Source < I > , Box < dyn fmt:: Debug + ' _ > > {
315+ fn fetch ( & mut self , id : & Id ) -> Result < & Source < I > , impl fmt:: Debug > {
316316 if id == & self . 0 {
317317 Ok ( self . 1 )
318318 } else {
319319 Err ( Box :: new ( format ! ( "Failed to fetch source '{}'" , id) ) )
320320 }
321321 }
322- fn display < ' a > ( & self , id : & ' a Id ) -> Option < Box < dyn fmt:: Display + ' a > > {
322+ fn display < ' a > ( & self , id : & ' a Id ) -> Option < impl fmt:: Display + ' a > {
323323 Some ( Box :: new ( id) )
324324 }
325325}
@@ -333,7 +333,7 @@ pub struct FileCache {
333333impl Cache < Path > for FileCache {
334334 type Storage = String ;
335335
336- fn fetch ( & mut self , path : & Path ) -> Result < & Source , impl fmt:: Debug + ' _ > {
336+ fn fetch ( & mut self , path : & Path ) -> Result < & Source , impl fmt:: Debug > {
337337 Ok :: < _ , Error > ( match self . files . entry ( path. to_path_buf ( ) ) {
338338 // TODO: Don't allocate here
339339 Entry :: Occupied ( entry) => entry. into_mut ( ) ,
0 commit comments