anchor.diff:        // are leaking memory?). That's why we run it twice and not 10 times.
         for (int i = 0; i < 2; i++) await generateKernel(entryUri);
       },
  +    'unlinked_summarize': () async {
  +      Set<Source> files = scanReachableFiles(entryUri);
  +      // TODO(sigmund): replace the warmup with instrumented snapshots.
  +      for (int i = 0; i < 10; i++) unlinkedSummarizeFiles(files);
  +    }
     };
   
     var handler = handlers[bench];
  
positive.code:   report("parse", pTime);
  }
  
  /// Add to [files] all sources reachable from [start].
  void collectSources(Source start, Set<Source> files) {
    if (!files.add(start)) return;
  
negative.code: import 'package:analyzer/src/generated/parser.dart';
  import 'package:analyzer/src/generated/source.dart';
  import 'package:analyzer/src/generated/source_io.dart';
  import 'package:analyzer/src/summary/format.dart';
  import 'package:analyzer/src/summary/summarize_ast.dart';
  import 'package:kernel/analyzer/loader.dart';
  import 'package:kernel/kernel.dart';
  import 'package:package_config/discovery.dart';
  