anchor.diff:      if (task != null) {
         result.add('Error detected during task in queue "${task.queue}":\n');
         result.add(task.generateTree());
  -    } else if (schedule.done) {
  +    } else if (_scheduleWasDone) {
         result.add('Error detected after all tasks in the queue had finished.');
       } else {
  -      result.add('Error detected before the schedule started running');
  +      result.add('Error detected before the schedule started running.');
       }
   
       return result.toString();
  
positive.code:     return new ScheduleError(schedule, error, stackTrace, cause, task);
    }
  
    ScheduleError(this.schedule, error, stackTrace, AsyncError cause, this.task)
      : super.withCause(error, stackTrace, cause);
  
    String toString() {
      var result = new StringBuffer();
  
negative.code:   /// there was no such task.
    final Task task;
  
    /// Whether the schedule was finished executing at the time the error was
    /// detected.
    final bool _scheduleWasDone;
  
    /// Creates a new [ScheduleError] wrapping [error]. The metadata in
    /// [AsyncError]s and [ScheduleError]s will be preserved.
    factory ScheduleError.from(Schedule schedule, error, {stackTrace,
  