Function: testcover-analyze-coverage-edebug-after

testcover-analyze-coverage-edebug-after is a byte-compiled function defined in testcover.el.gz.

Signature

(testcover-analyze-coverage-edebug-after FORM BEFORE-FORM BEFORE-ID AFTER-ID WRAPPED-FORM &optional WRAPPER)

Documentation

Analyze a _FORM wrapped by edebug-after for code coverage.

_FORM should be either:
    (edebug-after (edebug-before BEFORE-ID) AFTER-ID WRAPPED-FORM)
or:
    (edebug-after 0 AFTER-ID WRAPPED-FORM)

where BEFORE-FORM is bound to either (edebug-before BEFORE-ID) or
0. WRAPPER may be 1value or noreturn, and if so it forces the
form to be treated accordingly.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/testcover.el.gz
(defun testcover-analyze-coverage-edebug-after (_form before-form before-id
                                               after-id wrapped-form
                                               &optional wrapper)
  "Analyze a _FORM wrapped by `edebug-after' for code coverage.
_FORM should be either:
    (edebug-after (edebug-before BEFORE-ID) AFTER-ID WRAPPED-FORM)
or:
    (edebug-after 0 AFTER-ID WRAPPED-FORM)

where BEFORE-FORM is bound to either (edebug-before BEFORE-ID) or
0.  WRAPPER may be 1value or noreturn, and if so it forces the
form to be treated accordingly."
  (let (val)
    (unless (eql before-form 0)
      (aset testcover-vector before-id 'edebug-ok-coverage))

    (setq val (testcover-analyze-coverage-wrapped-form wrapped-form))
    (when (or (eq wrapper '1value) val)
      ;; The form is 1-valued or potentially 1-valued.
      (aset testcover-vector after-id (or val 'testcover-1value)))

    (cond
     ((or (eq wrapper 'noreturn)
          (memq (car-safe wrapped-form) testcover-noreturn-functions))
      ;; This function won't return, so indicate to testcover-before that
      ;; it should record coverage.
      (aset testcover-vector before-id (cons 'noreturn after-id))
      (aset testcover-vector after-id 'testcover-1value)
      (setq val 'testcover-1value))

     ((eq (car-safe wrapped-form) '1value)
      ;; This function is always supposed to return the same value.
      (setq val 'testcover-1value)
      (aset testcover-vector after-id 'testcover-1value)))
    val))