[slime-cvs] CVS slime

CVS User heller heller at common-lisp.net
Wed Sep 23 11:19:56 UTC 2009


Update of /project/slime/cvsroot/slime
In directory cl-net:/tmp/cvs-serv17086

Modified Files:
	ChangeLog swank-ccl.lisp 
Log Message:
* swank-ccl.lisp (find-definitions): For fbound symbols also
consider source-notes in the function object.  Useful if
the function slot was set with (setf (symbol-function ..))
and not by defun.

--- /project/slime/cvsroot/slime/ChangeLog	2009/09/21 19:36:53	1.1862
+++ /project/slime/cvsroot/slime/ChangeLog	2009/09/23 11:19:55	1.1863
@@ -1,3 +1,10 @@
+2009-09-22  Helmut Eller  <heller at common-lisp.net>
+
+	* swank-ccl.lisp (find-definitions): For fbound symbols also
+	consider source-notes in the function object.  Useful if
+	the function slot was set with (setf (symbol-function ..))
+	and not by defun.
+
 2009-09-21  Stas Boukarev  <stassats at gmail.com>
 
 	* doc/slime.texi (slime-sprof): document slime-sprof contrib.
--- /project/slime/cvsroot/slime/swank-ccl.lisp	2009/08/31 17:08:17	1.5
+++ /project/slime/cvsroot/slime/swank-ccl.lisp	2009/09/23 11:19:55	1.6
@@ -581,13 +581,17 @@
               (t `(:error ,(funcall if-nil-thunk))))
       (error (c) `(:error ,(princ-to-string c))))))
 
-(defimplementation find-definitions (obj)
-  (loop for ((type . name) . sources) in (ccl:find-definition-sources obj)
-        collect (list (definition-name type name)
-                      (source-note-to-source-location
-                       (find-if-not #'null sources)
-                       (lambda () "No source-note available")
-                       name))))
+(defimplementation find-definitions (name)
+  (let ((defs (or (ccl:find-definition-sources name)
+                  (and (symbolp name)
+                       (fboundp name)
+                       (ccl:find-definition-sources (symbol-function name))))))
+    (loop for ((type . name) . sources) in defs
+          collect (list (definition-name type name)
+                        (source-note-to-source-location
+                         (find-if-not #'null sources)
+                         (lambda () "No source-note available")
+                         name)))))
 
 (defimplementation find-source-location (obj)
   (let* ((defs (ccl:find-definition-sources obj))





More information about the slime-cvs mailing list