public static boolean isNullConversion(MethodType call,MethodType recv,boolean keepInterfaces){
  if (call == recv)   return true;
  int len=call.parameterCount();
  if (len != recv.parameterCount())   return false;
  for (int i=0; i < len; i++)   if (!isNullConversion(call.parameterType(i),recv.parameterType(i),keepInterfaces))   return false;
  return isNullConversion(recv.returnType(),call.returnType(),keepInterfaces);
}

public static boolean isNullConversion ( MethodType call , MethodType recv , boolean keepInterfaces ) { if ( call == recv ) return true ; int len = call . parameterCount ( ) ; if ( len != recv . parameterCount ( ) ) return false ; for ( int i = 0 ; i < len ; i ++ ) if ( ! isNullConversion ( call . parameterType ( i ) , recv . parameterType ( i ) , keepInterfaces ) ) return false ; return isNullConversion ( recv . returnType ( ) , call . returnType ( ) , keepInterfaces ) ; }
true if a method handle can receive a call under a slightly different method type , without moving or reformatting any stack elements .
