[slime-cvs] CVS slime

heller heller at common-lisp.net
Wed Aug 9 16:34:15 UTC 2006


Update of /project/slime/cvsroot/slime
In directory clnet:/tmp/cvs-serv32656

Modified Files:
	swank-backend.lisp 
Log Message:
(definterface): Bring the old implementation based on
NO-APPLICABLE-METHOD back.


--- /project/slime/cvsroot/slime/swank-backend.lisp	2006/04/12 08:43:55	1.98
+++ /project/slime/cvsroot/slime/swank-backend.lisp	2006/08/09 16:34:15	1.99
@@ -113,7 +113,10 @@
 Backends implement these functions using DEFIMPLEMENTATION."
   (check-type documentation string "a documentation string")
   (flet ((gen-default-impl ()
-           `(defmethod ,name ,args , at default-body)))
+           `(defmethod no-applicable-method ((_gf (eql #',name)) &rest _rargs)
+              (declare (ignore _))
+              (destructuring-bind ,args rargs
+                , at default-body))))
     `(progn (defgeneric ,name ,args (:documentation ,documentation))
             (pushnew ',name *interface-functions*)
             ,(if (null default-body)
@@ -125,12 +128,13 @@
             ',name)))
 
 (defmacro defimplementation (name args &body body)
-  `(progn (defmethod ,name ,args , at body)
-          (if (member ',name *interface-functions*)
-              (setq *unimplemented-interfaces*
-                    (remove ',name *unimplemented-interfaces*))
-              (warn "DEFIMPLEMENTATION of undefined interface (~S)" ',name))
-          ',name))
+  `(progn
+     (defmethod ,name ,args , at body)
+     (if (member ',name *interface-functions*)
+         (setq *unimplemented-interfaces*
+               (remove ',name *unimplemented-interfaces*))
+         (warn "DEFIMPLEMENTATION of undefined interface (~S)" ',name))
+     ',name))
 
 (defun warn-unimplemented-interfaces ()
   "Warn the user about unimplemented backend features.
@@ -724,7 +728,7 @@
 (definterface make-default-inspector ()
   "Return an inspector object suitable for passing to inspect-for-emacs.")
 
-(definterface inspect-for-emacs (object inspector)
+(defgeneric inspect-for-emacs (object inspector)
    "Explain to Emacs how to inspect OBJECT.
 
 The argument INSPECTOR is an object representing how to get at




More information about the slime-cvs mailing list