fixed PR 10418 (keyword args in procedure contracts)

svn: r15847
This commit is contained in:
Ryan Culpepper 2009-09-01 15:08:06 +00:00
parent 941d8c47c3
commit 38fc6c8e67

View File

@ -1463,7 +1463,13 @@ v4 todo:
(define (keywords-match mandatory-kwds optional-kwds val)
(let-values ([(proc-mandatory proc-all) (procedure-keywords val)])
(and (equal? proc-mandatory mandatory-kwds)
(and ;; proc accepts all ctc's mandatory keywords
(andmap (λ (kwd) (member kwd proc-all))
mandatory-kwds)
;; proc's mandatory keywords are still mandatory in ctc
(andmap (λ (kwd) (member kwd mandatory-kwds))
proc-mandatory)
;; proc accepts (but does not require) ctc's optional keywords
(andmap (λ (kwd) (and (member kwd proc-all)
(not (member kwd proc-mandatory))))
optional-kwds))))