mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 02:20:21 -08:00
* lisp/emacs-lisp/testcover.el: Don't use edebug--read (bug#20487)
* lisp/emacs-lisp/testcover.el: Use lexical-binding. (testcover--read): Rename from testcover-read. Change calling convention. Use edebug-read-and-maybe-wrap-form now that edebug-read is gone. (testcover-start): Use add-function. Move edebug-all-defs binding to testcover--read. (testcover-this-defun): Tighten scope of edebug-all-defs binding. (testcover-mark): Remove unused var `item'. * src/lread.c (syms_of_lread): Default load-read-function to `read'.
This commit is contained in:
parent
1f052a5f26
commit
1340aefd96
3 changed files with 21 additions and 14 deletions
|
|
@ -1,4 +1,4 @@
|
|||
;;;; testcover.el -- Visual code-coverage tool
|
||||
;;;; testcover.el -- Visual code-coverage tool -*- lexical-binding:t -*-
|
||||
|
||||
;; Copyright (C) 2002-2015 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -191,8 +191,9 @@ problems with type-ahead or post-command-hook, etc. If BYTE-COMPILE is
|
|||
non-nil, byte-compiles each function after instrumenting."
|
||||
(interactive "fStart covering file: ")
|
||||
(let ((buf (find-file filename))
|
||||
(load-read-function 'testcover-read)
|
||||
(edebug-all-defs t))
|
||||
(load-read-function load-read-function))
|
||||
(add-function :around load-read-function
|
||||
#'testcover--read)
|
||||
(setq edebug-form-data nil
|
||||
testcover-module-constants nil
|
||||
testcover-module-1value-functions nil)
|
||||
|
|
@ -207,22 +208,26 @@ non-nil, byte-compiles each function after instrumenting."
|
|||
(defun testcover-this-defun ()
|
||||
"Start coverage on function under point."
|
||||
(interactive)
|
||||
(let* ((edebug-all-defs t)
|
||||
(x (symbol-function (eval-defun nil))))
|
||||
(let ((x (let ((edebug-all-defs t))
|
||||
(symbol-function (eval-defun nil)))))
|
||||
(testcover-reinstrument x)
|
||||
x))
|
||||
|
||||
(defun testcover-read (&optional stream)
|
||||
(defun testcover--read (orig &optional stream)
|
||||
"Read a form using edebug, changing edebug callbacks to testcover callbacks."
|
||||
(let ((x (edebug-read stream)))
|
||||
(testcover-reinstrument x)
|
||||
x))
|
||||
(or stream (setq stream standard-input))
|
||||
(if (eq stream (current-buffer))
|
||||
(let ((x (let ((edebug-all-defs t))
|
||||
(edebug-read-and-maybe-wrap-form))))
|
||||
(testcover-reinstrument x)
|
||||
x)
|
||||
(funcall (or orig #'read) stream)))
|
||||
|
||||
(defun testcover-reinstrument (form)
|
||||
"Reinstruments FORM to use testcover instead of edebug. This
|
||||
function modifies the list that FORM points to. Result is nil if
|
||||
FORM should return multiple values, t if should always return same
|
||||
value, 'maybe if either is acceptable."
|
||||
value, `maybe' if either is acceptable."
|
||||
(let ((fun (car-safe form))
|
||||
id val)
|
||||
(cond
|
||||
|
|
@ -495,7 +500,7 @@ eliminated by adding more test cases."
|
|||
(len (length points))
|
||||
(changed (buffer-modified-p))
|
||||
(coverage (get def 'edebug-coverage))
|
||||
ov j item)
|
||||
ov j)
|
||||
(or (and def-mark points coverage)
|
||||
(error "Missing edebug data for function %s" def))
|
||||
(when (> len 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue