anchor.diff:  
     /// Merge [and check] accessors. This entails removing setters corresponding
     /// to fields, and checking that setters don't override regular methods.
  -  void mergeAccessors(KernelClassBuilder cls, List<Declaration> allMembers,
  -      List<Declaration> allSetters) {
  +  void mergeAccessors(KernelClassBuilder cls, List<Declaration> members,
  +      List<Declaration> setters) {
       List<Declaration> overriddenSetters;
       int i = 0;
       int j = 0;
  -    while (i < allMembers.length && j < allSetters.length) {
  -      Declaration member = allMembers[i];
  -      Declaration setter = allSetters[j];
  +    while (i < members.length && j < setters.length) {
  +      Declaration member = members[i];
  +      Declaration setter = setters[j];
         final int compare = compareDeclarations(member, setter);
         if (compare == 0) {
           if (member.isField) {
  
positive.code:     return type is KernelNamedTypeBuilder ? type.declaration : null;
    }
  
    List<Declaration> merge(
        KernelClassBuilder cls,
        List<Declaration> localMembers,
        List<Declaration> superMembers,
        MergeKind mergeKind) {
      final List<Declaration> mergedMembers = new List<Declaration>.filled(
          localMembers.length + superMembers.length, null,
          growable: true);
  
      int mergedMemberCount = 0;
  
      int i = 0;
      int j = 0;
      while (i < localMembers.length && j < superMembers.length) {
        final Declaration localMember = localMembers[i];
        final Declaration superMember = superMembers[j];
        final int compare = compareDeclarations(localMember, superMember);
        if (compare == 0) {
          mergedMembers[mergedMemberCount++] =
              handleOverride(cls, localMember, superMember, mergeKind);
          i++;
          j++;
        } else if (compare < 0) {
          handleNewMember(localMember, mergeKind);
          mergedMembers[mergedMemberCount++] = localMember;
          i++;
        } else {
          handleInheritance(cls, superMember, mergeKind);
          mergedMembers[mergedMemberCount++] = superMember;
          j++;
        }
      }
      while (i < localMembers.length) {
        final Declaration localMember = localMembers[i];
        handleNewMember(localMember, mergeKind);
        mergedMembers[mergedMemberCount++] = localMember;
        i++;
      }
      while (j < superMembers.length) {
        final Declaration superMember = superMembers[j];
        handleInheritance(cls, superMember, mergeKind);
        mergedMembers[mergedMemberCount++] = superMember;
        j++;
      }
      return mergedMembers..length = mergedMemberCount;
    }
  }
  
  
negative.code:         scope = mixin.scope;
        }
      }
      List<Declaration> localMembers =
          new List<Declaration>.from(scope.local.values)
            ..sort(compareDeclarations);
      List<Declaration> localSetters =
          new List<Declaration>.from(scope.setters.values)
            ..sort(compareDeclarations);
      List<Declaration> classMembers;
      List<Declaration> classSetters;
      List<Declaration> interfaceMembers;
      List<Declaration> interfaceSetters;
      if (supernode == null) {
        // This should be Object.
        interfaceMembers = classMembers = localMembers;
        interfaceSetters = classSetters = localSetters;
      } else {
        classMembers = merge(
            cls, localMembers, supernode.classMembers, MergeKind.superclass);
        classSetters = merge(
            cls, localSetters, supernode.classSetters, MergeKind.superclass);
        List<KernelTypeBuilder> interfaces = cls.interfaces;
        if (interfaces != null) {
          MergeResult result = mergeInterfaces(cls, supernode, interfaces);
          interfaceMembers = result.mergedMembers;
          interfaceSetters = result.mergedSetters;
        } else {
          interfaceMembers = classMembers;
          interfaceSetters = classSetters;
        }
      }
      nodes[cls] = new ClassHierarchyNode(cls, scope, classMembers, classSetters,
          interfaceMembers, interfaceSetters);
      mergeAccessors(cls, classMembers, classSetters);
  
      if (abstractMemberCount != 0 && !cls.isAbstract) {
        if (!hasNoSuchMethod) {
          reportMissingMembers(cls, classMembers, classSetters);
        }
        installNsmHandlers(cls);
      }
  