docs: private static <T> Field<T> createCollectionInlineV(int number,
              String name, java.lang.reflect.Field f,
              MessageFactory messageFactory, final Delegate<Object> inline)
      {
          final Accessor accessor = AF.create(f);
          return new RuntimeCollectionField<T, Object>(inline.getFieldType(),
                  number, name, f.getAnnotation(Tag.class), messageFactory)
          {
              @Override
              protected void mergeFrom(Input input, T message) throws IOException
              {
                  accessor.set(message, input.mergeObject(
                          accessor.<Collection<Object>>get(message), schema));
              }
  
              @Override
              protected void writeTo(Output output, T message) throws IOException
              {
                  final Collection<Object> existing = accessor.get(message);
                  if (existing != null)
                      output.writeObject(number, existing, schema, false);
              }
  
              @Override
              protected void transfer(Pipe pipe, Input input, Output output,
                      boolean repeated) throws IOException
              {
                  output.writeObject(number, pipe, schema.pipeSchema, repeated);
              }
  
              @Override
              protected void addValueFrom(Input input,
                      Collection<Object> collection) throws IOException
              {
                  collection.add(inline.readFrom(input));
              }
  
              @Override
              protected void writeValueTo(Output output, int fieldNumber,
                      Object value, boolean repeated) throws IOException
              {
                  inline.writeTo(output, fieldNumber, value, repeated);
              }
  
              @Override
              protected void transferValue(Pipe pipe, Input input, Output output,
                      int number, boolean repeated) throws IOException
              {
                  inline.transfer(pipe, input, output, number, repeated);
              }
          };
      }