message: Add some asserts.
diff: @@ -162,18 +162,24 @@ impl<'a, 'cfg> Timings<'a, 'cfg> {
  /// Mark that the `.rmeta` file as generated.
  pub fn unit_rmeta_finished(&mut self, id: u32, unlocked: Vec<&Unit<'a>>) {
  + // `id` may not always be active. "fresh" units unconditionally
  + // generate `Message::Finish`, but this active map only tracks dirty
  + // units.
  if let Some(unit_time) = self.active.get_mut(&id) {
  let t = d_as_f64(self.start.elapsed());
  unit_time.rmeta_time = Some(t - unit_time.start);
  + assert!(unit_time.unlocked_rmeta_units.is_empty());
  unit_time.unlocked_rmeta_units.extend(unlocked);
  }
  }
  /// Mark that a unit has finished running.
  pub fn unit_finished(&mut self, id: u32, unlocked: Vec<&Unit<'a>>) {
  + // See note above in `unit_rmeta_finished`, this may not always be active.
  if let Some(mut unit_time) = self.active.remove(&id) {
  let t = d_as_f64(self.start.elapsed());
  unit_time.duration = t - unit_time.start;
  + assert!(unit_time.unlocked_units.is_empty());
  unit_time.unlocked_units.extend(unlocked);
  if self.report_info {
  let msg = format!(
  