@@ -100,18 +100,30 @@ impl Default for OnDiskReports {
100
100
}
101
101
102
102
impl OnDiskReports {
103
- /// Saves a new report.
103
+ /// Saves a new report returning its id
104
104
pub fn save_report (
105
105
mut self ,
106
106
ws : & Workspace < ' _ > ,
107
107
suggestion_message : String ,
108
108
per_package_reports : & [ FutureIncompatReportPackage ] ,
109
- ) {
109
+ ) -> u32 {
110
+ let per_package = render_report ( per_package_reports) ;
111
+
112
+ if let Some ( existing_report) = self
113
+ . reports
114
+ . iter ( )
115
+ . find ( |existing| existing. per_package == per_package)
116
+ {
117
+ return existing_report. id ;
118
+ }
119
+
110
120
let report = OnDiskReport {
111
121
id : self . next_id ,
112
122
suggestion_message,
113
- per_package : render_report ( per_package_reports ) ,
123
+ per_package,
114
124
} ;
125
+
126
+ let saved_id = report. id ;
115
127
self . next_id += 1 ;
116
128
self . reports . push ( report) ;
117
129
if self . reports . len ( ) > MAX_REPORTS {
@@ -138,6 +150,8 @@ impl OnDiskReports {
138
150
& mut ws. config ( ) . shell ( ) ,
139
151
) ;
140
152
}
153
+
154
+ saved_id
141
155
}
142
156
143
157
/// Loads the on-disk reports.
@@ -450,7 +464,7 @@ https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html#the-patch
450
464
update_message = update_message,
451
465
) ;
452
466
453
- current_reports. save_report (
467
+ let saved_report_id = current_reports. save_report (
454
468
bcx. ws ,
455
469
suggestion_message. clone ( ) ,
456
470
per_package_future_incompat_reports,
@@ -461,14 +475,14 @@ https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html#the-patch
461
475
drop ( bcx. config . shell ( ) . note ( & format ! (
462
476
"this report can be shown with `cargo report \
463
477
future-incompatibilities --id {}`",
464
- report_id
478
+ saved_report_id
465
479
) ) ) ;
466
480
} else if should_display_message {
467
481
drop ( bcx. config . shell ( ) . note ( & format ! (
468
482
"to see what the problems were, use the option \
469
483
`--future-incompat-report`, or run `cargo report \
470
484
future-incompatibilities --id {}`",
471
- report_id
485
+ saved_report_id
472
486
) ) ) ;
473
487
}
474
488
}
0 commit comments