diff options
Diffstat (limited to 'scheme/guile')
-rw-r--r-- | scheme/guile/geiser/xref.scm | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/scheme/guile/geiser/xref.scm b/scheme/guile/geiser/xref.scm index 4f1b2cc..7dfa8af 100644 --- a/scheme/guile/geiser/xref.scm +++ b/scheme/guile/geiser/xref.scm @@ -48,20 +48,19 @@ (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))) + ((program-path p) => (lambda (s) (make-location s #f))) (else #f))) (define (program-path p) (let* ((mod (program-module p)) - (name (and mod (module-name mod)))) + (name (and (module? mod) (module-name mod)))) (and name (module-path name)))) (define (procedure-xref proc . mod-name) - (let ((proc-name (or (procedure-name proc) '<anonymous>)) - (mod-name (if (null? mod-name) - (symbol-module proc-name) - (car mod-name)))) + (let* ((proc-name (or (procedure-name proc) '<anonymous>)) + (mod-name (if (null? mod-name) + (symbol-module proc-name) + (car mod-name)))) (make-xref proc proc-name mod-name))) (define (callers sym) |