docs: public static CallSite bootstrap(Lookup caller, String callType, MethodType type, String name, int flags) {
              boolean safe = (flags&SAFE_NAVIGATION)!=0;
              boolean thisCall = (flags&THIS_CALL)!=0;
              boolean spreadCall = (flags&SPREAD_CALL)!=0;
              int callID;
              if (callType.equals(CALL_TYPES.METHOD.getCallSiteName())) {
                  callID = CALL_TYPES.METHOD.ordinal();
              } else if (callType.equals(CALL_TYPES.INIT.getCallSiteName())) {
                  callID = CALL_TYPES.INIT.ordinal();
              } else if (callType.equals(CALL_TYPES.GET.getCallSiteName())) {
                  callID = CALL_TYPES.GET.ordinal();
              } else if (callType.equals(CALL_TYPES.SET.getCallSiteName())) {
                  callID = CALL_TYPES.SET.ordinal();
              } else if (callType.equals(CALL_TYPES.CAST.getCallSiteName())) {
                  callID = CALL_TYPES.CAST.ordinal();
              }else {
                  throw new GroovyBugError("Unknown call type: "+callType);
              }
              return realBootstrap(caller, name, callID, type, safe, thisCall, spreadCall);
          }