anchor.diff:      for (var path in input.keys) {
         newFile(path, content: input[path]);
       }
  -    var listener = new TestMigrationListener();
  +    var listener = new _TestMigrationListener();
       var migration = NullabilityMigration(listener,
  -        permissive: usePermissiveMode, assumptions: assumptions);
  +        permissive: _usePermissiveMode, assumptions: assumptions);
       for (var path in input.keys) {
         migration.prepareInput(await session.getResolvedUnit(path));
       }
  
positive.code:   }
  }
  
  class TestMigrationListener implements NullabilityMigrationListener {
    final fixes = <SingleNullabilityFix>[];
  
    @override
    void addFix(SingleNullabilityFix fix) {
      fixes.add(fix);
    }
  }
  
negative.code: }
  
  @reflectiveTest
  class _ProvisionalApiTestPermissive extends _ProvisionalApiTestBase
      with _ProvisionalApiTestCases {
    @override
    bool get _usePermissiveMode => true;
  }
  
  /// Tests of the provisional API, where the driver is reset between calls to
  /// `prepareInput` and `processInput`, ensuring that the migration algorithm
  /// sees different AST and element objects during different phases.
  @reflectiveTest
  class _ProvisionalApiTestWithReset extends _ProvisionalApiTestBase
      with _ProvisionalApiTestCases {
    @override
    bool get _usePermissiveMode => false;
  
    @override
    void _afterPrepare() {
  