anchor.diff:      var used = coverage.contains(name);
   
       var groupName = libraryGroupName(i);
  -    (packageData[groupName] ??= PackageInfo()).add(i, used: used);
  +    packageData.putIfAbsent(groupName!, () => RuntimePackageInfo());
  +    packageData[groupName]!.add(i, used: used);
   
       if (used) {
         usedCode += i.size;
  
positive.code:     usedRatio = usedSize / totalSize;
    }
  }
  
negative.code:   RuntimeCoverageAnalysisCommand() {
      argParser.addFlag('show-packages',
          defaultsTo: false, help: "Show coverage details at the package level.");
      argParser.addOption('class-filter',
          defaultsTo: '', help: "Show coverage details filtered by class.");
    }
  
    @override
    void run() async {
      var args = argResults!.rest;
      if (args.length < 2) {
        usageException('Missing arguments, expected: info.data coverage.json');
      }
      var showPackages = argResults!['show-packages'] as bool;
      var filterFile = argResults!['class-filter'] as String;
      if (showPackages && filterFile.isNotEmpty) {
        throw StateError('Cannot specify both packages view and filtered view.');
      }
      if (showPackages) {
        await _reportWithPackages(args[0], args[1]);
      } else if (filterFile.isNotEmpty) {
        _reportWithClassFilter(args[0], args[1], filterFile);
      } else {
        await _report(args[0], args[1]);
      }
  