code: public boolean isSignaturePolymorphic(MethodSymbol msym) {
         List<Type> argtypes = msym.type.getParameterTypes();
         return (msym.flags_field & NATIVE) != 0 &&
                (msym.owner == syms.methodHandleType.tsym || msym.owner == syms.varHandleType.tsym) &&
                 argtypes.length() == 1 &&
                 argtypes.head.hasTag(TypeTag.ARRAY) &&
                 ((ArrayType)argtypes.head).elemtype.tsym == syms.objectType.tsym;
     }
docs: A polymorphic signature method (JLS 15.12.3) is a method that
  (i) is declared in the java.lang.invoke.MethodHandle/VarHandle classes;
  (ii) takes a single variable arity parameter;
  (iii) whose declared type is Object[];
  (iv) has any return type, Object signifying a polymorphic return type; and
  (v) is native.