private static FunctionDescriptor generateFunctionSignatureForType(
     FunctionDescriptor functionDescriptor, ClassDescriptor typeDescriptor) {
   // TODO: support for generics.
   Modality modality = typeDescriptor.getModality();
   if (typeDescriptor.getKind() == ClassKind.INTERFACE) {
     modality = Modality.OPEN;
   }
   return functionDescriptor.copy(
       typeDescriptor,
       modality,
       functionDescriptor.getVisibility(),
       CallableMemberDescriptor.Kind.DECLARATION,
       /* copyOverrides = */ false);
 }