public static boolean methodNeedsLispMacroP(MethodSlot method) {
    if (Stella.translateToCommonLispP() &&
        method.methodParameterNames().nonEmptyP()) {
      { BooleanWrapper lispmacroP = ((BooleanWrapper)(KeyValueList.dynamicSlotValue(method.dynamicSlots, Stella.SYM_STELLA_METHOD_LISP_MACROp, null)));

        return (((lispmacroP != null) &&
            BooleanWrapper.coerceWrappedBooleanToBoolean(lispmacroP)) ||
            (MethodSlot.commandP(method) &&
             ((!((BooleanWrapper)(KeyValueList.dynamicSlotValue(method.dynamicSlots, Stella.SYM_STELLA_METHOD_NATIVEp, Stella.FALSE_WRAPPER))).wrapperValue) &&
              ((lispmacroP == null) ||
               BooleanWrapper.coerceWrappedBooleanToBoolean(lispmacroP)))));
      }
    }
    else {
      return (false);
    }
  }