anchor.diff:      for (var action in _buildActions) {
         phaseNumber++;
         var inputs = _matchingInputs(action.inputSet, phaseNumber);
  -      await for (var output in _runBuilder(
  +      for (var output in await _runBuilder(
             phaseNumber, action.builder, inputs, resourceManager)) {
           outputs.add(output);
         }
  
positive.code:           .toSet();
  
    /// Runs [builder] with [primaryInputs] as inputs.
    Stream<AssetId> _runBuilder(int phaseNumber, Builder builder,
        Iterable<AssetId> primaryInputs, ResourceManager resourceManager) {
      var streamController = new StreamController<AssetId>();
      Future runForInput(AssetId input) async {
        var builderOutputs = expectedOutputs(builder, input);
  
  
negative.code:       // Yield the outputs.
        for (var output in wrappedWriter.assetsWritten) {
          (_assetGraph.get(output) as GeneratedAssetNode).wasOutput = true;
          outputs.add(output);
        }
      }
  
      await Future.wait(primaryInputs.map(runForInput));
  
      return outputs;
    }
  
    Future _delete(AssetId id) {
  