@@ -303,58 +303,79 @@ where
303303 } => chain. insert (
304304 version. inner ,
305305 ItemStatus :: NoChange {
306+ previously_deprecated : false ,
306307 ident : from_ident. clone ( ) ,
307308 ty : from_type. clone ( ) ,
308309 } ,
309310 ) ,
310311 ItemStatus :: Deprecation { previous_ident, .. } => chain. insert (
311312 version. inner ,
312313 ItemStatus :: NoChange {
314+ previously_deprecated : false ,
313315 ident : previous_ident. clone ( ) ,
314316 ty : self . inner . ty ( ) ,
315317 } ,
316318 ) ,
317- ItemStatus :: NoChange { ident, ty } => chain. insert (
319+ ItemStatus :: NoChange {
320+ previously_deprecated,
321+ ident,
322+ ty,
323+ } => chain. insert (
318324 version. inner ,
319325 ItemStatus :: NoChange {
326+ previously_deprecated : * previously_deprecated,
320327 ident : ident. clone ( ) ,
321328 ty : ty. clone ( ) ,
322329 } ,
323330 ) ,
324331 ItemStatus :: NotPresent => unreachable ! ( ) ,
325332 } ,
326333 ( Some ( status) , None ) => {
327- let ( ident, ty) = match status {
328- ItemStatus :: Addition { ident, ty, .. } => ( ident, ty) ,
334+ let ( ident, ty, previously_deprecated ) = match status {
335+ ItemStatus :: Addition { ident, ty, .. } => ( ident, ty, false ) ,
329336 ItemStatus :: Change {
330337 to_ident, to_type, ..
331- } => ( to_ident, to_type) ,
332- ItemStatus :: Deprecation { ident, .. } => ( ident, & self . inner . ty ( ) ) ,
333- ItemStatus :: NoChange { ident, ty } => ( ident, ty) ,
338+ } => ( to_ident, to_type, false ) ,
339+ ItemStatus :: Deprecation { ident, .. } => {
340+ ( ident, & self . inner . ty ( ) , true )
341+ }
342+ ItemStatus :: NoChange {
343+ previously_deprecated,
344+ ident,
345+ ty,
346+ ..
347+ } => ( ident, ty, * previously_deprecated) ,
334348 ItemStatus :: NotPresent => unreachable ! ( ) ,
335349 } ;
336350
337351 chain. insert (
338352 version. inner ,
339353 ItemStatus :: NoChange {
354+ previously_deprecated,
340355 ident : ident. clone ( ) ,
341356 ty : ty. clone ( ) ,
342357 } ,
343358 )
344359 }
345360 ( Some ( status) , Some ( _) ) => {
346- let ( ident, ty) = match status {
347- ItemStatus :: Addition { ident, ty, .. } => ( ident, ty) ,
361+ let ( ident, ty, previously_deprecated ) = match status {
362+ ItemStatus :: Addition { ident, ty, .. } => ( ident, ty, false ) ,
348363 ItemStatus :: Change {
349364 to_ident, to_type, ..
350- } => ( to_ident, to_type) ,
351- ItemStatus :: NoChange { ident, ty, .. } => ( ident, ty) ,
365+ } => ( to_ident, to_type, false ) ,
366+ ItemStatus :: NoChange {
367+ previously_deprecated,
368+ ident,
369+ ty,
370+ ..
371+ } => ( ident, ty, * previously_deprecated) ,
352372 _ => unreachable ! ( ) ,
353373 } ;
354374
355375 chain. insert (
356376 version. inner ,
357377 ItemStatus :: NoChange {
378+ previously_deprecated,
358379 ident : ident. clone ( ) ,
359380 ty : ty. clone ( ) ,
360381 } ,
@@ -398,6 +419,7 @@ pub(crate) enum ItemStatus {
398419 ident : Ident ,
399420 } ,
400421 NoChange {
422+ previously_deprecated : bool ,
401423 ident : Ident ,
402424 ty : Type ,
403425 } ,
0 commit comments