X-Git-Url: http://christophe.rhodes.io/gitweb/?p=specializable.git;a=blobdiff_plain;f=specializable.lisp;fp=specializable.lisp;h=1df14d403054fd46587736e6fa672688d4d62b11;hp=ebe4794a44bdbe7d51212df995df3a599101f17b;hb=0ec84041118d2b84f0cdb4f3578e63aa1fae6678;hpb=053eaf6bdc566da3f0ef40ed06e4de0a1adbdeec diff --git a/specializable.lisp b/specializable.lisp index ebe4794..1df14d4 100644 --- a/specializable.lisp +++ b/specializable.lisp @@ -155,10 +155,12 @@ args)))) (defun compute-effective-method-function (gf methods) - (let* ((mc (sb-mop:generic-function-method-combination gf)) - (sb-pcl::*applicable-methods* methods) - (em (sb-mop:compute-effective-method gf mc methods))) - (sb-pcl::make-effective-method-function gf em))) + (if (null methods) + (lambda (&rest args) (apply #'no-applicable-method gf args)) + (let* ((mc (sb-mop:generic-function-method-combination gf)) + (sb-pcl::*applicable-methods* methods) + (em (sb-mop:compute-effective-method gf mc methods))) + (sb-pcl::make-effective-method-function gf em)))) ;; new, not in closette (defgeneric generalizer-of-using-class (generic-function object))