anchor.diff:      }
     }
   }
  +
  +const _domainRegep =
  +    r"(?:[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.)+[a-zA-Z]{2,}";
  +final _domainThing = new RegExp("[@/]($_domainRegep)>");
  +
  +String _domainFromAuthor(String author) {
  +  var match = _domainThing.firstMatch(author);
  +  if (match == null) {
  +    return 'unknown';
  +  }
  +  return match.group(1);
  +}
  
positive.code: import 'package:path/path.dart' as p;
  
  main() async {
    var dir = new Directory("pkg_clean.1491503303478");
  
    var items = dir
        .listSync()
  
negative.code:   final int unformattedFiles;
    final Set<AnalyzerOutput> analyzerItems;
    final bool pubClean;
    final Set<String> authorDomains;
  
    _MiniSum._(this.name, this.version, this.unformattedFiles, this.analyzerItems,
        this.pubClean, this.authorDomains);
  
    factory _MiniSum.fromSummary(Summary summary) {
      var authorDomains =
          summary.pubSummary.authors.map(_domainFromAuthor).toSet();
  
      return new _MiniSum._(
          summary.packageName,
          summary.packageVersion.toString(),
          summary.unformattedFiles.length,
          summary.analyzerItems,
          summary.pubSummary.exitCode == 0,
          authorDomains);
    }
  
    Map<String, dynamic> toJson() => <String, dynamic>{
  