public static Symbol methodCallTypeForVectorStructs(Symbol slotname, Surrogate owner, boolean functionP) {
    if (functionP ||
        ((owner == null) ||
         ((slotname == Stella.SYM_STELLA_NULLp) ||
          ((slotname == Stella.SYM_STELLA_DEFINEDp) ||
           (Symbol.symbolCommonLispP(slotname) ||
            ((!((List)(Stella.$CURRENT_STELLA_FEATURES$.get())).membP(Stella.KWD_USE_COMMON_LISP_STRUCTS)) ||
             (!((List)(Stella.$CURRENT_STELLA_FEATURES$.get())).membP(Stella.KWD_USE_COMMON_LISP_VECTOR_STRUCTS)))))))) {
      return (Stella.SYM_STELLA_NORMAL_CALL);
    }
    if (((!Surrogate.subtypeOfP(owner, Stella.SGT_STELLA_OBJECT)) &&
        (!((Stella_Class)(owner.surrogateValue)).mixinP)) ||
        ((owner == Stella.SGT_STELLA_CONS) &&
         ((List)(Stella.$CURRENT_STELLA_FEATURES$.get())).membP(Stella.KWD_USE_COMMON_LISP_CONSES))) {
      return (Stella.SYM_STELLA_NON_OBJECT_METHOD);
    }
    else {
      if (slotname == Stella.SYM_STELLA_PRINT_OBJECT) {
        return (Stella.SYM_STELLA_PRINT_OBJECT);
      }
      else {
        return (Stella.SYM_STELLA_OBJECT_METHOD);
      }
    }
  }