fixed contract on dict-set*, dict-set*!
This commit is contained in:
parent
a9efe95fc5
commit
01d565dfd7
|
@ -121,6 +121,10 @@
|
||||||
(or/c #f (-> dict? contract?))
|
(or/c #f (-> dict? contract?))
|
||||||
(or/c #f (-> dict? contract?))))
|
(or/c #f (-> dict? contract?))))
|
||||||
|
|
||||||
|
(define even-length-list/c
|
||||||
|
(flat-named-contract 'even-length-list/c
|
||||||
|
(lambda (l) (even? (length l)))))
|
||||||
|
|
||||||
;; ----------------------------------------
|
;; ----------------------------------------
|
||||||
|
|
||||||
(provide/contract
|
(provide/contract
|
||||||
|
@ -152,8 +156,6 @@
|
||||||
[dict-set
|
[dict-set
|
||||||
dict-set-contract]
|
dict-set-contract]
|
||||||
[dict-set*!
|
[dict-set*!
|
||||||
any/c
|
|
||||||
#|
|
|
||||||
(->i ([d (and/c dict? dict-mutable?)])
|
(->i ([d (and/c dict? dict-mutable?)])
|
||||||
#:rest [_ (d) (let ([key/c (dict-key-contract d)]
|
#:rest [_ (d) (let ([key/c (dict-key-contract d)]
|
||||||
[val/c (dict-value-contract d)])
|
[val/c (dict-value-contract d)])
|
||||||
|
@ -161,12 +163,10 @@
|
||||||
(recursive-contract
|
(recursive-contract
|
||||||
(or/c null
|
(or/c null
|
||||||
(cons/c key/c (cons/c val/c args/c))))])
|
(cons/c key/c (cons/c val/c args/c))))])
|
||||||
args/c))]
|
(and/c even-length-list/c
|
||||||
[_ void?])
|
args/c)))]
|
||||||
|#]
|
[_ void?])]
|
||||||
[dict-set*
|
[dict-set*
|
||||||
any/c
|
|
||||||
#|
|
|
||||||
(->i ([d (and/c dict? dict-can-functional-set?)])
|
(->i ([d (and/c dict? dict-can-functional-set?)])
|
||||||
#:rest [_ (d) (let ([key/c (dict-key-contract d)]
|
#:rest [_ (d) (let ([key/c (dict-key-contract d)]
|
||||||
[val/c (dict-value-contract d)])
|
[val/c (dict-value-contract d)])
|
||||||
|
@ -174,9 +174,9 @@
|
||||||
(recursive-contract
|
(recursive-contract
|
||||||
(or/c null
|
(or/c null
|
||||||
(cons/c key/c (cons/c val/c args/c))))])
|
(cons/c key/c (cons/c val/c args/c))))])
|
||||||
args/c))]
|
(and/c even-length-list/c
|
||||||
[_ dict?])
|
args/c)))]
|
||||||
|#]
|
[_ dict?])]
|
||||||
[dict-update!
|
[dict-update!
|
||||||
(->i ([d (and/c dict? dict-mutable?)]
|
(->i ([d (and/c dict? dict-mutable?)]
|
||||||
[k (d) (dict-key-contract d)]
|
[k (d) (dict-key-contract d)]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user