Allow multiple identifier/contract pairs in the same contracted form.

svn: r13054

original commit: 0db2eb851a46185f0f09a130f707e1cdd748c50e
This commit is contained in:
Stevie Strickland 2009-01-09 22:22:24 +00:00
parent 4d8f6fdeb0
commit 4380d8a399

View File

@ -241,15 +241,15 @@
(x (x
(identifier? #'x) (identifier? #'x)
(loop (cdr sig-exprs) (cons #'x bindings) val-defs stx-defs (cons #f ctcs))) (loop (cdr sig-exprs) (cons #'x bindings) val-defs stx-defs (cons #f ctcs)))
((x y z) ((x (y z) ...)
(and (identifier? #'x) (and (identifier? #'x)
(module-identifier=? #'x #'contracted) (module-identifier=? #'x #'contracted)
(identifier? #'y)) (andmap identifier? (syntax->list #'(y ...))))
(loop (cdr sig-exprs) (loop (cdr sig-exprs)
(cons #'y bindings) (append (syntax->list #'(y ...)) bindings)
val-defs val-defs
stx-defs stx-defs
(cons #'z ctcs))) (append (syntax->list #'(z ...)) ctcs)))
((x . y) ((x . y)
(and (identifier? #'x) (and (identifier? #'x)
(or (module-identifier=? #'x #'define-values) (or (module-identifier=? #'x #'define-values)