public static boolean methodNeedsEvaluatorWrapperP(MethodSlot method) {
    { boolean testValue000 = false;

      testValue000 = MethodSlot.methodMustBeEvaluableP(method);
      if (testValue000) {
        if (((BooleanWrapper)(KeyValueList.dynamicSlotValue(method.dynamicSlots, Stella.SYM_STELLA_METHOD_VARIABLE_ARGUMENTSp, Stella.FALSE_WRAPPER))).wrapperValue) {
          testValue000 = true;
        }
        else {
          if (method.methodParameterNames().length() > 5) {
            testValue000 = true;
          }
          else {
            if (method.methodReturnTypeSpecifiers().length() > 1) {
              testValue000 = true;
            }
            else {
              if (Surrogate.subtypeOfP(method.type(), Stella.SGT_STELLA_LITERAL)) {
                testValue000 = true;
              }
              else {
                { boolean foundP000 = false;

                  { StandardObject tspec = null;
                    Cons iter000 = method.methodParameterTypeSpecifiers().theConsList;

                    loop000 : for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
                      tspec = ((StandardObject)(iter000.value));
                      if (Surrogate.subtypeOfP(StandardObject.typeSpecToBaseType(tspec), Stella.SGT_STELLA_LITERAL)) {
                        foundP000 = true;
                        break loop000;
                      }
                    }
                  }
                  testValue000 = foundP000;
                }
              }
            }
          }
        }
      }
      { boolean value000 = testValue000;

        return (value000);
      }
    }
  }