@Override
 protected Set<CallableMemberDescriptor> collectMethodsToGenerate(
     MutableClassDescriptor descriptor) {
   final Set<CallableMemberDescriptor> superMethods =
       OverrideResolver.collectSuperMethods(descriptor).keySet();
   for (CallableMemberDescriptor member : descriptor.getDeclaredCallableMembers()) {
     superMethods.removeAll(member.getOverriddenDescriptors());
   }
   Set<CallableMemberDescriptor> result = new HashSet<CallableMemberDescriptor>();
   for (CallableMemberDescriptor superMethod : superMethods) {
     if (superMethod.getModality().isOverridable()) {
       result.add(superMethod);
     }
   }
   return result;
 }