summaryrefslogtreecommitdiff
path: root/scheme
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-11-13 00:07:54 +0100
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-11-13 00:07:54 +0100
commitdab11d9578577b8b231a98e6a614cb5fc49c9a84 (patch)
tree5a095ff1d23ed248e796052865dd7f823f14b0ff /scheme
parent6ae51474d59444f44f7b363acbcbcefd0551cd5b (diff)
downloadgeiser-guile-dab11d9578577b8b231a98e6a614cb5fc49c9a84.tar.gz
geiser-guile-dab11d9578577b8b231a98e6a614cb5fc49c9a84.tar.bz2
Guile: bug fix: a macro-transformer is not a good arity info source.
* scheme/guile/geiser/doc.scm (obj-args): producing always ... for macros.
Diffstat (limited to 'scheme')
-rw-r--r--scheme/guile/geiser/doc.scm10
1 files changed, 7 insertions, 3 deletions
diff --git a/scheme/guile/geiser/doc.scm b/scheme/guile/geiser/doc.scm
index b634c08..83bce66 100644
--- a/scheme/guile/geiser/doc.scm
+++ b/scheme/guile/geiser/doc.scm
@@ -55,7 +55,7 @@
(define (obj-args obj)
(cond ((not obj) #f)
((or (procedure? obj) (program? obj)) (arguments obj))
- ((macro? obj) (or (obj-args (macro-transformer obj)) '((required ...))))
+ ((macro? obj) '((required ...)))
(else 'variable)))
(define (arguments proc)
@@ -79,8 +79,12 @@
(let ((req (car art))
(opt (cadr art))
(rest (caddr art)))
- `(,@(if (> req 0) (list (cons 'required (gen-arg-names 1 req))) '())
- ,@(if (> opt 0) (list (cons 'optional (gen-arg-names (+ 1 req) opt))) '())
+ `(,@(if (> req 0)
+ (list (cons 'required (gen-arg-names 1 req)))
+ '())
+ ,@(if (> opt 0)
+ (list (cons 'optional (gen-arg-names (+ 1 req) opt)))
+ '())
,@(if rest (list (cons 'rest 'rest)) '()))))
(define (gen-arg-names fst count)