aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorStefan Monnier2015-01-26 09:04:55 -0500
committerStefan Monnier2015-01-26 09:04:55 -0500
commit4cdde9196fb4fafb00b0c51b908fd605274147bd (patch)
tree34b825a588203225f126027cff47f95772af2a28 /test
parent242354a23acf214ad06d4e3e7e5f5580c8b21d4a (diff)
downloademacs-4cdde9196fb4fafb00b0c51b908fd605274147bd.tar.gz
emacs-4cdde9196fb4fafb00b0c51b908fd605274147bd.zip
* lisp/emacs-lisp/cl-generic.el: Add a method-combination hook.
(cl-generic-method-combination-function): New var. (cl--generic-lambda): Remove `with-cnm' arg. (cl-defmethod): Change accordingly. (cl-generic-define-method): Don't check qualifiers validity. Preserve all qualifiers in `method-table'. (cl-generic-call-method): New function. (cl--generic-nest): Remove (morph into cl-generic-call-method). (cl--generic-build-combined-method): Adjust to new format of method-table and use cl-generic-method-combination-function. (cl--generic-standard-method-combination): New function, extracted from cl--generic-build-combined-method. (cl--generic-cnm-sample): Adjust to new format of method-table. * lisp/emacs-lisp/eieio-compat.el (eieio--defmethod): Use () qualifiers instead of :primary. * lisp/emacs-lisp/eieio-datadebug.el (eieio-debug-methodinvoke): Remove obsolete function. * test/automated/cl-generic-tests.el (cl-generic-test-11-next-method-p): New test.
Diffstat (limited to 'test')
-rw-r--r--test/ChangeLog5
-rw-r--r--test/automated/cl-generic-tests.el8
2 files changed, 13 insertions, 0 deletions
diff --git a/test/ChangeLog b/test/ChangeLog
index d8cd36790f2..9a31da45416 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,8 @@
12015-01-26 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * automated/cl-generic-tests.el (cl-generic-test-11-next-method-p):
4 New test.
5
12015-01-25 Paul Eggert <eggert@cs.ucla.edu> 62015-01-25 Paul Eggert <eggert@cs.ucla.edu>
2 7
3 * indent/shell.sh (bar): Use '[ $# -eq 0 ]', not '[ $# == 0 ]'. 8 * indent/shell.sh (bar): Use '[ $# -eq 0 ]', not '[ $# == 0 ]'.
diff --git a/test/automated/cl-generic-tests.el b/test/automated/cl-generic-tests.el
index bc9a1ece423..5b3a9fdc2a1 100644
--- a/test/automated/cl-generic-tests.el
+++ b/test/automated/cl-generic-tests.el
@@ -171,5 +171,13 @@
171 (should (equal (cl--generic-1 'a 'b) '(a b))) 171 (should (equal (cl--generic-1 'a 'b) '(a b)))
172 (should (equal (cl--generic-1 1 2) '("integer" 2 1)))) 172 (should (equal (cl--generic-1 1 2) '("integer" 2 1))))
173 173
174(ert-deftest cl-generic-test-11-next-method-p ()
175 (cl-defgeneric cl--generic-1 (x y))
176 (cl-defmethod cl--generic-1 ((x t) y)
177 (list x y (cl-next-method-p)))
178 (cl-defmethod cl--generic-1 ((_x (eql 4)) _y)
179 (cl-list* "quatre" (cl-next-method-p) (cl-call-next-method)))
180 (should (equal (cl--generic-1 4 5) '("quatre" t 4 5 nil))))
181
174(provide 'cl-generic-tests) 182(provide 'cl-generic-tests)
175;;; cl-generic-tests.el ends here 183;;; cl-generic-tests.el ends here