anchor.diff:                expectedDeletes,
               ));
   
  +    var changes =
  +        graphEvents.map((data) => WatchEvent(data.type, '${data.id}'));
  +
       return BuildRunnerDaemonBuilder._(
  -        builder, buildOptions, outputStreamController, graphEvents);
  +        builder, buildOptions, outputStreamController, changes);
     }
   }
  
positive.code:   @override
    Future<void> build(Set<String> targets, Set<String> logToPaths,
        Iterable<WatchEvent> fileChanges) async {
      _logMessage(Level.INFO, 'About to build $targets...');
      try {
        var mergedChanges = collectChanges([_changesFromLastBuild]);
        var result =
            await _builder.run(mergedChanges, buildDirs: targets.toList());
        var results = <daemon.BuildResult>[];
  
negative.code: /// A Daemon Builder that uses build_runner_core for building.
  class BuildRunnerDaemonBuilder implements DaemonBuilder {
    final _buildResults = StreamController<daemon.BuildResults>();
  
    final BuildImpl _builder;
    final BuildOptions _buildOptions;
    final StreamController<ServerLog> _outputStreamController;
    final Stream<WatchEvent> _changes;
  
    BuildRunnerDaemonBuilder._(
      this._builder,
      this._buildOptions,
      this._outputStreamController,
      this._changes,
    );
  
    @override
    Stream<daemon.BuildResults> get builds => _buildResults.stream;
  