diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-11-13 00:07:54 +0100 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-11-13 00:07:54 +0100 |
commit | dab11d9578577b8b231a98e6a614cb5fc49c9a84 (patch) | |
tree | 5a095ff1d23ed248e796052865dd7f823f14b0ff | |
parent | 6ae51474d59444f44f7b363acbcbcefd0551cd5b (diff) | |
download | geiser-chez-dab11d9578577b8b231a98e6a614cb5fc49c9a84.tar.gz geiser-chez-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.
-rw-r--r-- | scheme/guile/geiser/doc.scm | 10 |
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) |