@@ -297,36 +297,69 @@ where
297
297
ItemStatus :: Addition { .. } => {
298
298
chain. insert ( version. inner , ItemStatus :: NotPresent )
299
299
}
300
- ItemStatus :: Change { from_ident, .. } => {
301
- chain. insert ( version. inner , ItemStatus :: NoChange ( from_ident. clone ( ) ) )
302
- }
303
- ItemStatus :: Deprecation { previous_ident, .. } => chain
304
- . insert ( version. inner , ItemStatus :: NoChange ( previous_ident. clone ( ) ) ) ,
305
- ItemStatus :: NoChange ( ident) => {
306
- chain. insert ( version. inner , ItemStatus :: NoChange ( ident. clone ( ) ) )
307
- }
300
+ ItemStatus :: Change {
301
+ from_ident,
302
+ from_type,
303
+ ..
304
+ } => chain. insert (
305
+ version. inner ,
306
+ ItemStatus :: NoChange {
307
+ ident : from_ident. clone ( ) ,
308
+ ty : from_type. clone ( ) ,
309
+ } ,
310
+ ) ,
311
+ ItemStatus :: Deprecation { previous_ident, .. } => chain. insert (
312
+ version. inner ,
313
+ ItemStatus :: NoChange {
314
+ ident : previous_ident. clone ( ) ,
315
+ ty : self . inner . ty ( ) ,
316
+ } ,
317
+ ) ,
318
+ ItemStatus :: NoChange { ident, ty } => chain. insert (
319
+ version. inner ,
320
+ ItemStatus :: NoChange {
321
+ ident : ident. clone ( ) ,
322
+ ty : ty. clone ( ) ,
323
+ } ,
324
+ ) ,
308
325
ItemStatus :: NotPresent => unreachable ! ( ) ,
309
326
} ,
310
327
( Some ( status) , None ) => {
311
- let ident = match status {
312
- ItemStatus :: Addition { ident, .. } => ident,
313
- ItemStatus :: Change { to_ident, .. } => to_ident,
314
- ItemStatus :: Deprecation { ident, .. } => ident,
315
- ItemStatus :: NoChange ( ident) => ident,
328
+ let ( ident, ty) = match status {
329
+ ItemStatus :: Addition { ident, ty, .. } => ( ident, ty) ,
330
+ ItemStatus :: Change {
331
+ to_ident, to_type, ..
332
+ } => ( to_ident, to_type) ,
333
+ ItemStatus :: Deprecation { ident, .. } => ( ident, & self . inner . ty ( ) ) ,
334
+ ItemStatus :: NoChange { ident, ty } => ( ident, ty) ,
316
335
ItemStatus :: NotPresent => unreachable ! ( ) ,
317
336
} ;
318
337
319
- chain. insert ( version. inner , ItemStatus :: NoChange ( ident. clone ( ) ) )
338
+ chain. insert (
339
+ version. inner ,
340
+ ItemStatus :: NoChange {
341
+ ident : ident. clone ( ) ,
342
+ ty : ty. clone ( ) ,
343
+ } ,
344
+ )
320
345
}
321
346
( Some ( status) , Some ( _) ) => {
322
- let ident = match status {
323
- ItemStatus :: Addition { ident, .. } => ident,
324
- ItemStatus :: Change { to_ident, .. } => to_ident,
325
- ItemStatus :: NoChange ( ident) => ident,
347
+ let ( ident, ty) = match status {
348
+ ItemStatus :: Addition { ident, ty, .. } => ( ident, ty) ,
349
+ ItemStatus :: Change {
350
+ to_ident, to_type, ..
351
+ } => ( to_ident, to_type) ,
352
+ ItemStatus :: NoChange { ident, ty, .. } => ( ident, ty) ,
326
353
_ => unreachable ! ( ) ,
327
354
} ;
328
355
329
- chain. insert ( version. inner , ItemStatus :: NoChange ( ident. clone ( ) ) )
356
+ chain. insert (
357
+ version. inner ,
358
+ ItemStatus :: NoChange {
359
+ ident : ident. clone ( ) ,
360
+ ty : ty. clone ( ) ,
361
+ } ,
362
+ )
330
363
}
331
364
_ => unreachable ! ( ) ,
332
365
} ;
@@ -365,7 +398,10 @@ pub(crate) enum ItemStatus {
365
398
note : Option < String > ,
366
399
ident : Ident ,
367
400
} ,
368
- NoChange ( Ident ) ,
401
+ NoChange {
402
+ ident : Ident ,
403
+ ty : Type ,
404
+ } ,
369
405
NotPresent ,
370
406
}
371
407
@@ -375,7 +411,7 @@ impl ItemStatus {
375
411
ItemStatus :: Addition { ident, .. } => Some ( ident) ,
376
412
ItemStatus :: Change { to_ident, .. } => Some ( to_ident) ,
377
413
ItemStatus :: Deprecation { ident, .. } => Some ( ident) ,
378
- ItemStatus :: NoChange ( ident) => Some ( ident) ,
414
+ ItemStatus :: NoChange { ident, .. } => Some ( ident) ,
379
415
ItemStatus :: NotPresent => None ,
380
416
}
381
417
}
0 commit comments