anchor.diff:      }
     });
   
  -  logTimedSync(_logger, 'Writing asset manifest', () {
  +  await logTimedAsync(_logger, 'Writing asset manifest', () async {
       var paths = outputAssets.map((id) => id.path).toList()..sort();
       var content = paths.join(_manifestSeparator);
  -    _writeAsString(
  +    await _writeAsString(
           outputDir, new AssetId(packageGraph.root.name, _manifestName), content);
     });
   
  
positive.code:   } else {
      relativePath = id.path;
    }
    var file = new File(p.join(outputDir.path, relativePath));
    file.createSync(recursive: true);
    return file;
  }
  
  /// Checks for a manifest file in [outputDir] and deletes all referenced files.
  
negative.code:   return outputId;
  }
  
  Future<void> _writeAsBytes(Directory outputDir, AssetId id, List<int> bytes) =>
      _descriptorPool.withResource(
          () => _fileFor(outputDir, id).then((file) => file.writeAsBytes(bytes)));
  
  Future<void> _writeAsString(Directory outputDir, AssetId id, String contents) =>
      _descriptorPool.withResource(() =>
          _fileFor(outputDir, id).then((file) => file.writeAsString(contents)));
  
  Future<File> _fileFor(Directory outputDir, AssetId id) {
    String relativePath;
    if (id.path.startsWith('lib')) {
      relativePath =
  