mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
* lisp/subr.el (method-files): Move function to cl-generic.el
* lisp/emacs-lisp/cl-generic.el (cl-generic-p): New function. (cl--generic-method-files): New function, moved from subr.el. * lisp/emacs-lisp/edebug.el (edebug-instrument-function): Use them. * test/lisp/emacs-lisp/cl-generic-tests.el: * test/lisp/subr-tests.el: Move and adjust method-files tests accordingly.
This commit is contained in:
parent
dc9c6a071c
commit
b2225a374f
6 changed files with 46 additions and 46 deletions
|
|
@ -219,5 +219,29 @@
|
|||
(should (equal (cl--generic-1 '(5) nil) '("cinq" (5))))
|
||||
(should (equal (cl--generic-1 '(6) nil) '("six" a))))
|
||||
|
||||
(cl-defgeneric cl-generic-tests--generic (x))
|
||||
(cl-defmethod cl-generic-tests--generic ((x string))
|
||||
(message "%s is a string" x))
|
||||
(cl-defmethod cl-generic-tests--generic ((x integer))
|
||||
(message "%s is a number" x))
|
||||
(cl-defgeneric cl-generic-tests--generic-without-methods (x y))
|
||||
(defvar cl-generic-tests--this-file
|
||||
(file-truename (or load-file-name buffer-file-name)))
|
||||
|
||||
(ert-deftest cl-generic-tests--method-files--finds-methods ()
|
||||
"`method-files' returns a list of files and methods for a generic function."
|
||||
(let ((retval (cl--generic-method-files 'cl-generic-tests--generic)))
|
||||
(should (equal (length retval) 2))
|
||||
(mapc (lambda (x)
|
||||
(should (equal (car x) cl-generic-tests--this-file))
|
||||
(should (equal (cadr x) 'cl-generic-tests--generic)))
|
||||
retval)
|
||||
(should-not (equal (nth 0 retval) (nth 1 retval)))))
|
||||
|
||||
(ert-deftest cl-generic-tests--method-files--nonexistent-methods ()
|
||||
"`method-files' returns nil if asked to find a method which doesn't exist."
|
||||
(should-not (cl--generic-method-files 'cl-generic-tests--undefined-generic))
|
||||
(should-not (cl--generic-method-files 'cl-generic-tests--generic-without-methods)))
|
||||
|
||||
(provide 'cl-generic-tests)
|
||||
;;; cl-generic-tests.el ends here
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue