[armedbear-cvs] r13876 - trunk/abcl/src/org/armedbear/lisp
rschlatte at common-lisp.net
rschlatte at common-lisp.net
Thu Feb 23 10:33:07 UTC 2012
Author: rschlatte
Date: Thu Feb 23 02:33:06 2012
New Revision: 13876
Log:
Beginning support for non-standard method metaclasses
... canonicalize specializers in defmethod macroexpansion, instead of in
the bowels of make-instance-standard-method.
... handle non-standard method metaclass in more places
Modified:
trunk/abcl/src/org/armedbear/lisp/clos.lisp
Modified: trunk/abcl/src/org/armedbear/lisp/clos.lisp
==============================================================================
--- trunk/abcl/src/org/armedbear/lisp/clos.lisp Wed Feb 22 02:14:06 2012 (r13875)
+++ trunk/abcl/src/org/armedbear/lisp/clos.lisp Thu Feb 23 02:33:06 2012 (r13876)
@@ -1790,7 +1790,9 @@
(if (eq (generic-function-method-class gf) +the-standard-method-class+)
(apply #'make-instance-standard-method gf all-keys)
(apply #'make-instance (generic-function-method-class gf) all-keys))))
- (std-add-method gf method)
+ (if (eq (generic-function-method-class gf) +the-standard-method-class+)
+ (std-add-method gf method)
+ (add-method gf method))
method)))
(defun make-instance-standard-method (gf
@@ -2473,7 +2475,7 @@
(ensure-method ',function-name
:lambda-list ',lambda-list
:qualifiers ',qualifiers
- :specializers ,specializers-form
+ :specializers (canonicalize-specializers ,specializers-form)
,@(if documentation `(:documentation ,documentation))
:function (function ,method-function)
,@(if fast-function `(:fast-function (function ,fast-function)))
More information about the armedbear-cvs
mailing list