summaryrefslogtreecommitdiff
path: root/geiser/xref.scm
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2010-06-06 05:36:43 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2010-06-06 05:36:43 +0200
commite43cfa849ea8f361365bdea6b751c0f44467aa1a (patch)
tree7c6ce8fc471eaae2fd2743b62fb178768f7ac7bb /geiser/xref.scm
parent9b414b443347e13b7aec843299596fcac5e453ac (diff)
downloadgeiser-guile-e43cfa849ea8f361365bdea6b751c0f44467aa1a.tar.gz
geiser-guile-e43cfa849ea8f361365bdea6b751c0f44467aa1a.tar.bz2
Guile: evaluation fixes (current git head).
Diffstat (limited to 'geiser/xref.scm')
-rw-r--r--geiser/xref.scm6
1 files changed, 4 insertions, 2 deletions
diff --git a/geiser/xref.scm b/geiser/xref.scm
index 54a0d9c..060bec4 100644
--- a/geiser/xref.scm
+++ b/geiser/xref.scm
@@ -1,6 +1,6 @@
;;; xref.scm -- cross-referencing utilities
-;; Copyright (C) 2009 Jose Antonio Ortega Ruiz
+;; Copyright (C) 2009, 2010 Jose Antonio Ortega Ruiz
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the Modified BSD License. You should
@@ -24,7 +24,9 @@
(define (symbol-location sym)
(cond ((symbol-module sym) => module-location)
- (else '())))
+ (else (let ((obj (symbol->object sym)))
+ (or (and (program? obj) (program-location obj))
+ '())))))
(define (generic-methods sym)
(let* ((gen (symbol->object sym))