public final boolean isSignaturePolymorphic() {
    CstType definingClass = getDefiningClass();
    if (definingClass.equals(CstType.METHOD_HANDLE)) {
      switch (getNat().getName().getString()) {
        case "invoke":
        case "invokeExact":
          return true;
      }
    } else if (definingClass.equals(CstType.VAR_HANDLE)) {
      switch (getNat().getName().getString()) {
        case "compareAndExchange":
        case "compareAndExchangeAcquire":
        case "compareAndExchangeRelease":
        case "compareAndSet":
        case "get":
        case "getAcquire":
        case "getAndAdd":
        case "getAndAddAcquire":
        case "getAndAddRelease":
        case "getAndBitwiseAnd":
        case "getAndBitwiseAndAcquire":
        case "getAndBitwiseAndRelease":
        case "getAndBitwiseOr":
        case "getAndBitwiseOrAcquire":
        case "getAndBitwiseOrRelease":
        case "getAndBitwiseXor":
        case "getAndBitwiseXorAcquire":
        case "getAndBitwiseXorRelease":
        case "getAndSet":
        case "getAndSetAcquire":
        case "getAndSetRelease":
        case "getOpaque":
        case "getVolatile":
        case "set":
        case "setOpaque":
        case "setRelease":
        case "setVolatile":
        case "weakCompareAndSet":
        case "weakCompareAndSetAcquire":
        case "weakCompareAndSetPlain":
        case "weakCompareAndSetRelease":
          return true;
      }
    }
    return false;
  }
Get whether this is a reference to a signature polymorphic method. This means it is defined in
{@code java.lang.invoke.MethodHandle} and is either the {@code invoke} or the {@code
invokeExact} method.

@return {@code true} iff this is a reference to a signature polymorphic method.
android/android_framework/dex-maker/src/main/java/com/android/dx/rop/cst/CstBaseMethodRef.java