Update of /project/movitz/cvsroot/movitz/losp/muerte In directory clnet:/tmp/cvs-serv3986
Modified Files: los-closette.lisp Log Message: Allow :method options to defgeneric.
--- /project/movitz/cvsroot/movitz/losp/muerte/los-closette.lisp 2008/03/15 20:57:57 1.38 +++ /project/movitz/cvsroot/movitz/losp/muerte/los-closette.lisp 2008/04/12 16:47:21 1.39 @@ -10,7 +10,7 @@ ;;;; Author: Frode Vatvedt Fjeld frodef@acm.org ;;;; Created at: Tue Jul 23 14:29:10 2002 ;;;; -;;;; $Id: los-closette.lisp,v 1.38 2008/03/15 20:57:57 ffjeld Exp $ +;;;; $Id: los-closette.lisp,v 1.39 2008/04/12 16:47:21 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -32,10 +32,15 @@ ,@(canonicalize-defclass-options options env name)))))
(defmacro defgeneric (function-name lambda-list &rest options) - `(eval-when (:compile-toplevel) - (movitz-ensure-generic-function ',function-name - :lambda-list ',lambda-list - ,@(canonicalize-defgeneric-options options)))) + `(progn + (eval-when (:compile-toplevel) + (movitz-ensure-generic-function ',function-name + :lambda-list ',lambda-list + ,@(canonicalize-defgeneric-options options))) + ,@(mapcan (lambda (option) + (when (eq :method (car option)) + (list `(defmethod ,function-name ,@(cdr option))))) + options)))
(defmacro defmethod (&rest args &environment env) (multiple-value-bind (name qualifiers lambda-list specializers body declarations documentation)