anchor.diff:      var phaseNumber = 0;
       for (var action in _buildActions) {
         phaseNumber++;
  -      // Collects all the ids for files which are output by this stage. This
  -      // also includes files which didn't get regenerated because they weren't,
  -      // dirty unlike [outputs] which only gets files which were explicitly
  -      // generated in this build.
  -      final phaseOutputIds = new Set<AssetId>();
         var inputs = _matchingInputs(action.inputSet, phaseNumber);
         await for (var output
  -          in _runBuilder(phaseNumber, action.builder, inputs, phaseOutputIds)) {
  +          in _runBuilder(phaseNumber, action.builder, inputs)) {
           outputs.add(output);
         }
       }
  
positive.code: 
    /// Runs [builder] with [primaryInputs] as inputs.
    Stream<AssetId> _runBuilder(int phaseNumber, Builder builder,
        Iterable<AssetId> primaryInputs, Set<AssetId> groupOutputs) async* {
      for (var input in primaryInputs) {
        var builderOutputs = expectedOutputs(builder, input);
  
  
negative.code:       // Yield the outputs.
        for (var output in writer.assetsWritten) {
          (_assetGraph.get(output) as GeneratedAssetNode).wasOutput = true;
          yield output;
        }
      }
  