anchor.diff:      List<String> overrideDescriptions = [];
       hierarchy.forEachOverridePair(class_,
           (Member declaredMember, Member interfaceMember, bool isSetter) {
  -      var desc = '$declaredMember overrides $interfaceMember';
  +      String declaredName = '$declaredMember${isSetter ? '=': ''}';
  +      String interfaceName = '$interfaceMember${isSetter ? '=': ''}';
  +      var desc = '$declaredName overrides $interfaceName';
         overrideDescriptions.add(desc);
       });
       expect(overrideDescriptions, unorderedEquals(expected));
  
positive.code:     program.libraries.add(library);
    }
  
    void test_forEachOverridePair_overrideSupertype() {
      var aFoo = newEmptyMethod('foo');
      var aBar = newEmptyMethod('bar');
      var bFoo = newEmptyMethod('foo');
      var cBar = newEmptyMethod('bar');
      var a = addClass(
          new Class(name: 'A', supertype: objectSuper, procedures: [aFoo, aBar]));
      var b = addClass(
          new Class(name: 'B', supertype: a.asThisSupertype, procedures: [bFoo]));
      var c = addClass(
          new Class(name: 'C', supertype: b.asThisSupertype, procedures: [cBar]));
  
      _assertTestLibraryText('''
  class A {
  
negative.code: 
      _assertOverridePairs(b, ['test::B::foo overrides test::A::foo']);
      _assertOverridePairs(c, ['test::C::bar overrides test::A::bar']);
    }
  
    /// 1. A member declared in the class overrides a member inheritable through
    /// one of the supertypes of the class.
    void test_forEachOverridePair_thisOverridesSupertype_setter() {
      var a = addClass(new Class(
          name: 'A',
          supertype: objectSuper,
          procedures: [newEmptySetter('foo'), newEmptySetter('bar')]));
      var b = addClass(new Class(
          name: 'B',
          supertype: a.asThisSupertype,
          procedures: [newEmptySetter('foo')]));
      var c = addClass(new Class(
          name: 'C',
          supertype: b.asThisSupertype,
          procedures: [newEmptySetter('bar')]));
  
      _assertTestLibraryText('''
  class A {
    set foo(dynamic _) → void {}
    set bar(dynamic _) → void {}
  }
  class B extends self::A {
    set foo(dynamic _) → void {}
  }
  class C extends self::B {
    set bar(dynamic _) → void {}
  }
  ''');
  
      _assertOverridePairs(b, ['test::B::foo= overrides test::A::foo=']);
      _assertOverridePairs(c, ['test::C::bar= overrides test::A::bar=']);
    }
  
    void test_getClassAsInstanceOf_generic_extends() {
  