anchor.diff:              ]);
         }
       }
  +    Member aTarget = a.target;
  +    Member bTarget = b.target;
       if (mergeKind == MergeKind.superclass &&
           aTarget.name == noSuchMethodName &&
           !aTarget.isAbstract) {
  
positive.code:   return !name.isPrivate || name.library == library.target;
  }
  
  class ClassHierarchyBuilder {
    final Map<KernelClassBuilder, ClassHierarchyNode> nodes =
        <KernelClassBuilder, ClassHierarchyNode>{};
  
negative.code:     }
      Declaration result = a;
      if (mergeKind == MergeKind.interfaces) {
        // TODO(ahe): Combine the signatures of a and b.  See the section named
        // "Combined Member Signatures" in [Dart Programming Language
        // Specification](
        // ../../../../../../docs/language/dartLangSpec.tex#combinedMemberSignatures).
      } else if (aTarget.isAbstract) {
        if (mergeKind == MergeKind.superclass && !bTarget.isAbstract) {
          // An abstract method doesn't override an implemention inherited from a
  