code: public static Object readFieldNoTag(CodedInputStream input,
                                        FieldDescriptor  fd,
                                        Builder          enclosingBuilder)
                                        throws IOException {
      if (!fd.isRepeated()) {
        return readSingleFieldNoTag(input, fd, enclosingBuilder);
      }
  
      // repeated field
  
      List<Object> values = Lists.newArrayList();
      while (!input.isAtEnd()) {
        values.add(readSingleFieldNoTag(input, fd, enclosingBuilder));
      }
      return values;
    }
docs: Deserializer for protobuf objects written with
  {@link #writeFieldNoTag(CodedOutputStream, FieldDescriptor, Object)}.
  
  @param input
  @param fd
  @param enclosingBuilder required to create a builder when the field
  is a message
  @throws IOException