fixing rest parsing

This commit is contained in:
Alex Shinn 2017-04-03 00:06:48 +09:00
parent 014aa253d1
commit 28d119426c

View file

@ -541,19 +541,19 @@ div#footer {padding-bottom: 50px}
(lp (cdr ls) (cons (cons (car ls) i) vars) (+ i 1))) (lp (cdr ls) (cons (cons (car ls) i) vars) (+ i 1)))
(else (else
(extract body vars i))))) (extract body vars i)))))
(else (_
(let ((opts (map car (sort vars < cdr))) (let* ((opts (map car (sort vars < cdr)))
(rest-var? (contains? x o))) (rest-var? (contains? x o))
(append (reverse pre) (tail (cond
(cond ((and (pair? opts) rest-var?)
((and (pair? opts) rest-var?) (list (append opts o)))
(list (append opts o))) (rest-var?
(rest-var? o)
o) ((pair? opts)
((pair? opts) (list opts))
(list opts)) (else
(else o))))
'())))))))))))) (append (reverse pre) tail))))))))))
(define (get-procedure-signature mod id proc) (define (get-procedure-signature mod id proc)
(protect (exn (else '())) (protect (exn (else '()))