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 | 694539c048cdabc4b27ce7609022671fed5200f5 (patch) | |
| tree | 9613d30903d0c8f22d81cb238432e0e6a22ec849 | |
| parent | 417460bb7dcaf110fff8dea9390c9b3afcd7681c (diff) | |
| download | geiser-guile-694539c048cdabc4b27ce7609022671fed5200f5.tar.gz geiser-guile-694539c048cdabc4b27ce7609022671fed5200f5.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-- | geiser/doc.scm | 10 | 
1 files changed, 7 insertions, 3 deletions
| diff --git a/geiser/doc.scm b/geiser/doc.scm index b634c08..83bce66 100644 --- a/geiser/doc.scm +++ b/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) | 
