anchor.diff:      await _checkSingleFileChanges(content, expected);
     }
   
  +  Future<void> test_extension_null_check_non_nullable_binary() async {
  +    var content = '''
  +class C {}
  +extension E on C/*!*/ {
  +  void operator+(int other) {}
  +}
  +void f(C c, bool b) {
  +  if (b) {
  +    c + 0;
  +  }
  +}
  +void g() => f(null, false);
  +''';
  +    var expected = '''
  +class C {}
  +extension E on C {
  +  void operator+(int other) {}
  +}
  +void f(C? c, bool b) {
  +  if (b) {
  +    c! + 0;
  +  }
  +}
  +void g() => f(null, false);
  +''';
  +    await _checkSingleFileChanges(content, expected);
  +  }
  +
  +  Future<void> test_extension_null_check_non_nullable_generic() async {
  +    var content = '''
  +class C {}
  +extension E<T extends Object/*!*/> on T/*!*/ {
  +  void m() {}
  +}
  +void f(C c, bool b) {
  +  if (b) {
  +    c.m();
  +  }
  +}
  +void g() => f(null, false);
  +''';
  +    var expected = '''
  +class C {}
  +extension E<T extends Object> on T {
  +  void m() {}
  +}
  +void f(C? c, bool b) {
  +  if (b) {
  +    c!.m();
  +  }
  +}
  +void g() => f(null, false);
  +''';
  +    await _checkSingleFileChanges(content, expected);
  +  }
  +
  +  Future<void> test_extension_null_check_non_nullable_index() async {
  +    var content = '''
  +class C {}
  +extension E on C/*!*/ {
  +  void operator[](int index) {}
  +}
  +void f(C c, bool b) {
  +  if (b) {
  +    c[0];
  +  }
  +}
  +void g() => f(null, false);
  +''';
  +    var expected = '''
  +class C {}
  +extension E on C {
  +  void operator[](int index) {}
  +}
  +void f(C? c, bool b) {
  +  if (b) {
  +    c![0];
  +  }
  +}
  +void g() => f(null, false);
  +''';
  +    await _checkSingleFileChanges(content, expected);
  +  }
  +
     Future<void> test_extension_null_check_non_nullable_method() async {
       var content = '''
   class C {}
  
positive.code:     await _checkSingleFileChanges(content, expected);
    }
  
    Future<void> test_extension_null_check_non_nullable_binary() async {
      var content = '''
  class C {}
  extension E on C/*!*/ {
    void operator+(int other) {}
  }
  void f(C c, bool b) {
    if (b) {
      c + 0;
    }
  }
  void g() => f(null, false);
  ''';
      var expected = '''
  class C {}
  extension E on C {
    void operator+(int other) {}
  }
  void f(C? c, bool b) {
    if (b) {
      c! + 0;
    }
  }
  void g() => f(null, false);
  ''';
      await _checkSingleFileChanges(content, expected);
    }
  
    Future<void> test_extension_null_check_non_nullable_prefix() async {
      var content = '''
  class C {}
  
negative.code: void f(C? c, bool b) {
    if (b) {
      -c!;
    }
  }
  void g() => f(null, false);
  