anchor.diff:        return new Stream<List<int>>.fromIterable(
             <List<int>>[bundleEntry.contentsAsBytes()]);
       }
  +    final File file = _getFile();
       return file.openRead();
     }
   
  
positive.code:     if (_isSourceEntry)
        return;
      _fileStat = file.statSync();
    }
  
    bool get _isSourceEntry => file == null;
  
    bool get _isAssetEntry => bundleEntry != null;
  
    Future<List<int>> contentsAsBytes() async {
      if (_isSourceEntry)
        return bundleEntry.contentsAsBytes();
      return file.readAsBytes();
    }
  
  
negative.code:       Stream<FileSystemEntity> files =
            directory.list(recursive: recursive, followLinks: false);
        await for (FileSystemEntity file in files) {
          if (file is Link) {
            final String linkPath = file.resolveSymbolicLinksSync();
            final FileSystemEntityType linkType =
                FileStat.statSync(linkPath).type;
            if (linkType == FileSystemEntityType.DIRECTORY) {
              // Skip links to directories.
              continue;
            }
          }
          if (file is Directory) {
            // Skip non-files.
            continue;
          }
          assert((file is Link) || (file is File));
          if (ignoreDotFiles && path.basename(file.path).startsWith('.')) {
            // Skip dot files.
            continue;
  