anchor.diff:               (skip-field (field)
                  (member (proto-external-field-name field)
                          skip-fields)))
  -        (dolist (field (proto-fields message))
  +        (dolist (field fields)
             (when (and (include-field field)
                        (not (skip-field field)))
               (multiple-value-bind (tags deserializers nslot rslot)
  
positive.code:                  (generate-non-repeated-field-deserializer
                    class index vbuf vidx temp :raw-p raw-p)
                 (if deserializer
                     (return-from generate-field-deserializer
                       (values (list tag) (list deserializer)
                               nslot rslot)))
                 (undefined-field-type "While generating 'deserialize-object' for ~S,"
                                       message class field))))))
  
  
negative.code:   (let ((vbuf (gensym "BUFFER"))
          (vidx (gensym "INDEX"))
          (vlim (gensym "LIMIT"))
          (vendtag (gensym "ENDTAG"))
          ;; Add oneof fields to the list of field descriptors, since we need to
          ;; create a deserializer for each.
          (fields (append (proto-fields message)
                          (loop for oneof in (proto-oneofs message)
                                append (coerce (oneof-descriptor-fields oneof)
                                               'list)))))
      (when (null fields)
        (return-from generate-deserializer
          (def-pseudo-method :deserialize name
            `(,vbuf ,vidx ,vlim &optional (,vendtag 0))
  