summaryrefslogtreecommitdiff
path: root/geiser/xref.scm
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-03-06 00:55:41 +0100
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-03-06 00:55:41 +0100
commitea52102ada24aece8efec96fbd37ce302805cdaf (patch)
tree0d4b9d14bf2fce49cb7dd1561960adfd09940531 /geiser/xref.scm
parent7b77380c3fe79764648c47268dd3dcca5d48b32b (diff)
downloadgeiser-guile-ea52102ada24aece8efec96fbd37ce302805cdaf.tar.gz
geiser-guile-ea52102ada24aece8efec96fbd37ce302805cdaf.tar.bz2
A bit more robust generic methods.
Diffstat (limited to 'geiser/xref.scm')
-rw-r--r--geiser/xref.scm6
1 files changed, 3 insertions, 3 deletions
diff --git a/geiser/xref.scm b/geiser/xref.scm
index c94835a..cb39c5d 100644
--- a/geiser/xref.scm
+++ b/geiser/xref.scm
@@ -46,17 +46,17 @@
(define (describe-method name m)
(let ((proc (method-procedure m)))
(if proc
- `((location . ,(program-location proc))
+ `((location . ,(or (program-location proc) (symbol-location name)))
(signature . ,(object-signature name proc)))
'())))
(define (program-location p)
- (cond ((not (program? p)) '())
+ (cond ((not (program? p)) #f)
((program-source p 0) =>
(lambda (s) (make-location (program-path p) (source:line s))))
((program-path p) =>
(lambda (s) (make-location (program-path p) #f)))
- (else '())))
+ (else #f)))
(define (program-path p)
(let* ((mod (program-module p))