docs: public static Dynamic bootstrap(String name, MethodDescription.InDefinedShape bootstrapMethod, List<?> rawArguments) {
              if (name.length() == 0 || name.contains(".")) {
                  throw new IllegalArgumentException("Not a valid field name: " + name);
              }
              List<Object> arguments = new ArrayList<Object>(rawArguments.size());
              for (Object argument : rawArguments) {
                  if (argument == null) {
                      argument = ofNullConstant();
                  } else if (argument instanceof Class) {
                      argument = ((Class<?>) argument).isPrimitive()
                              ? ofPrimitiveType((Class<?>) argument)
                              : TypeDescription.ForLoadedType.of((Class<?>) argument);
                  } else if (argument instanceof TypeDescription && ((TypeDescription) argument).isPrimitive()) {
                      argument = ofPrimitiveType((TypeDescription) argument);
                  } else if (JavaType.METHOD_HANDLE.isInstance(argument)) {
                      argument = MethodHandle.ofLoaded(argument);
                  } else if (JavaType.METHOD_TYPE.isInstance(argument)) {
                      argument = MethodType.ofLoaded(argument);
                  }
                  arguments.add(argument);
              }
              if (!bootstrapMethod.isConstantBootstrap(arguments)) {
                  throw new IllegalArgumentException("Not a valid bootstrap method " + bootstrapMethod + " for " + arguments);
              }
              Object[] asmifiedArgument = new Object[arguments.size()];
              int index = 0;
              for (Object argument : arguments) {
                  if (argument instanceof TypeDescription) {
                      argument = Type.getType(((TypeDescription) argument).getDescriptor());
                  } else if (argument instanceof JavaConstant) {
                      argument = ((JavaConstant) argument).asConstantPoolValue();
                  }
                  asmifiedArgument[index++] = argument;
              }
              return new Dynamic(new ConstantDynamic(name,
                      (bootstrapMethod.isConstructor()
                              ? bootstrapMethod.getDeclaringType()
                              : bootstrapMethod.getReturnType().asErasure()).getDescriptor(),
                      new Handle(bootstrapMethod.isConstructor() ? Opcodes.H_NEWINVOKESPECIAL : Opcodes.H_INVOKESTATIC,
                              bootstrapMethod.getDeclaringType().getInternalName(),
                              bootstrapMethod.getInternalName(),
                              bootstrapMethod.getDescriptor(),
                              false),
                      asmifiedArgument),
                      bootstrapMethod.isConstructor()
                              ? bootstrapMethod.getDeclaringType()
                              : bootstrapMethod.getReturnType().asErasure());
          }