anchor.diff:        var migration = NullabilityMigration(listener, permissive: true);
         for (var file in localFiles) {
           var resolvedUnit = await context.currentSession.getResolvedUnit(file);
  -        migration.prepareInput(resolvedUnit);
  +        if (!resolvedUnit.errors.any((e) => e.severity == Severity.error)) {
  +          migration.prepareInput(resolvedUnit);
  +        } else {
  +          print('Skipping $file, it has errors.');
  +        }
         }
         for (var file in localFiles) {
           var resolvedUnit = await context.currentSession.getResolvedUnit(file);
  -        migration.processInput(resolvedUnit);
  +        if (!resolvedUnit.errors.any((e) => e.severity == Severity.error)) {
  +          migration.processInput(resolvedUnit);
  +        }
         }
         migration.finish();
       }
  
positive.code:         print(detail);
        }
      }
      (groupedExceptions[category] ??= []).add(detail);
      ++numExceptions;
    }
  
  
negative.code:   int numRequiredAnnotationsAdded = 0;
  
    int numDeadCodeSegmentsFound = 0;
  
    String currentPackage;
  
    _Listener(this.categoryOfInterest, {this.printExceptionNodeOnly = false});
  
  