anchor.diff:      }
   
       Set<Name> existingForwardersNames = new Set<Name>();
  +    Set<Name> existingSetterForwardersNames = new Set<Name>();
       if (cls.superclass != null &&
           hasUserDefinedNoSuchMethod(cls.superclass, hierarchy)) {
         List<Member> concrete = hierarchy.getDispatchTargets(cls.superclass);
  
positive.code:           addNoSuchMethodForwarderForProcedure(member, hierarchy);
          }
          existingForwardersNames.add(member.name);
        }
      }
    }
  
negative.code:           existingForwardersNames.add(member.name);
          }
        }
  
        List<Member> concreteSetters =
            hierarchy.getDispatchTargets(cls.superclass, setters: true);
        for (Member member
            in hierarchy.getInterfaceMembers(cls.superclass, setters: true)) {
          if (ClassHierarchy.findMemberByName(concreteSetters, member.name) ==
              null) {
            existingSetterForwardersNames.add(member.name);
          }
        }
      }
  
      List<Member> concrete = hierarchy.getDispatchTargets(cls);
      List<Member> declared = hierarchy.getDeclaredMembers(cls);
      for (Member member in hierarchy.getInterfaceMembers(cls)) {
        if (member is Procedure &&
            ClassHierarchy.findMemberByName(concrete, member.name) == null &&
            !existingForwardersNames.contains(member.name)) {
          if (ClassHierarchy.findMemberByName(declared, member.name) != null) {
  