Function: byte-optimize-memq

byte-optimize-memq is a byte-compiled function defined in byte-opt.el.gz.

Signature

(byte-optimize-memq FORM)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/byte-opt.el.gz
(defun byte-optimize-memq (form)
  (if (= (length (cdr form)) 2)
      (let ((list (nth 2 form)))
        (cond
         ((null list)                   ; empty list
          `(progn ,(nth 1 form) nil))
         ;; (memq foo '(bar)) => (and (eq foo 'bar) '(bar))
         ((and (eq (car-safe list) 'quote)
               (listp (setq list (cadr list)))
               (null (cdr list)))
          `(and (eq ,(nth 1 form) ',(nth 0 list))
                ',list))
         (t form)))
    ;; Arity errors reported elsewhere.
    form))