summaryrefslogtreecommitdiff
path: root/scheme/guile/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
commit1f8abf10f7167cacf122a2eaa50acc66f0974d53 (patch)
treeb63266a8cd8efb27ac07cec9936c432793666979 /scheme/guile/geiser/xref.scm
parent754aa7a194c412f52b4733142566ed5e33a04f4f (diff)
downloadgeiser-guile-1f8abf10f7167cacf122a2eaa50acc66f0974d53.tar.gz
geiser-guile-1f8abf10f7167cacf122a2eaa50acc66f0974d53.tar.bz2
A bit more robust generic methods.
Diffstat (limited to 'scheme/guile/geiser/xref.scm')
-rw-r--r--scheme/guile/geiser/xref.scm6
1 files changed, 3 insertions, 3 deletions
diff --git a/scheme/guile/geiser/xref.scm b/scheme/guile/geiser/xref.scm
index c94835a..cb39c5d 100644
--- a/scheme/guile/geiser/xref.scm
+++ b/scheme/guile/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))