fix `keyword-apply' when the argument list is missing

Closes PR 11249
This commit is contained in:
Matthew Flatt 2011-01-08 08:12:31 -07:00
parent e6fd878e14
commit bbc0c687ee

View File

@ -193,7 +193,7 @@
#f #f
plain-proc)])) plain-proc)]))
(define (keyword-apply proc kws kw-vals . normal-argss) (define (keyword-apply proc kws kw-vals normal-args . normal-argss)
(let ([type-error (let ([type-error
(lambda (what which) (lambda (what which)
(apply raise-type-error (apply raise-type-error
@ -203,6 +203,7 @@
proc proc
kws kws
kw-vals kw-vals
normal-args
normal-argss))]) normal-argss))])
(unless (procedure? proc) (unless (procedure? proc)
(type-error "procedure" 0)) (type-error "procedure" 0))
@ -229,7 +230,7 @@
kws) kws)
kw-vals)) kw-vals))
(let ([normal-args (let ([normal-args
(let loop ([normal-argss normal-argss][pos 3]) (let loop ([normal-argss (cons normal-args normal-argss)][pos 3])
(if (null? (cdr normal-argss)) (if (null? (cdr normal-argss))
(let ([l (car normal-argss)]) (let ([l (car normal-argss)])
(if (list? l) (if (list? l)