* lisp/emacs-lisp/cl-generic.el: Add dispatch on &context arguments
commitd1b74200dad00cea845037064dc8b5d50db35dd2
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 12 May 2015 04:10:38 +0000 (12 00:10 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 12 May 2015 04:10:38 +0000 (12 00:10 -0400)
tree51102ad11a51f14177fa58dc601a536cac40d0ca
parentf0352ebdf088bea19b44ddb31e94888bc2345a24
* lisp/emacs-lisp/cl-generic.el: Add dispatch on &context arguments

(cl--generic-mandatory-args): Remove.
(cl--generic-split-args): New function.
(cl-generic-define, cl--generic-lambda): Use it.
(cl-generic-define-method): Use it as well, and add support for
context args.
(cl--generic-get-dispatcher): Handle &context dispatch.
(cl--generic-cache-miss): `dispatch-arg' can now be a context expression.
(cl--generic-dispatchers): Pre-fill.

* test/automated/cl-generic-tests.el (sm-generic-test-12-context): New test.
lisp/emacs-lisp/cl-generic.el
test/automated/cl-generic-tests.el