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,11 +541,10 @@ 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?
@ -553,7 +552,8 @@ div#footer {padding-bottom: 50px}
((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 '()))