anchor.diff:    // tell which web errors are web-specific.
     List<StaticError> cfeErrors;
     if (insert.contains(ErrorSource.cfe) || insert.contains(ErrorSource.web)) {
  +    var cfeOptions = [
  +      if (testFile.requirements.contains(Feature.nnbdWeak)) "--nnbd-weak",
  +      if (testFile.requirements.contains(Feature.nnbdStrong)) "--nnbd-strong",
  +      ...options
  +    ];
       // Clear the previous line.
       stdout.write("\r${file.path}                      ");
       stdout.write("\r${file.path} (Running CFE...)");
  -    cfeErrors = await runCfe(file.absolute.path, options);
  +    cfeErrors = await runCfe(file.absolute.path, cfeOptions);
       if (cfeErrors == null) {
         print("Error: failed to update ${file.path}");
       } else if (insert.contains(ErrorSource.cfe)) {
  
positive.code:   }
  
    var dryRun = results["dry-run"] as bool;
    var nullSafety = results["null-safety"] as bool;
  
    var removeSources = <ErrorSource>{};
    var insertSources = <ErrorSource>{};
  
negative.code: }
  
  Future<void> _processFile(File file,
      {bool dryRun, Set<ErrorSource> remove, Set<ErrorSource> insert}) async {
    stdout.write("${file.path}...");
    var source = file.readAsStringSync();
    var testFile = TestFile.parse(Path("."), file.absolute.path, source);
  
    var experiments = [
      if (testFile.experiments.isNotEmpty) ...testFile.experiments
    ];
  
  