original commit: 40c3d85334a84236cb316d4358ffb5264dac9e32
This commit is contained in:
Robby Findler 2005-02-28 13:58:53 +00:00
parent bd2008d8f0
commit 0bf5499d00
2 changed files with 70 additions and 1 deletions

View File

@ -2084,7 +2084,8 @@ add struct contracts for immutable structs?
...
[rng-id ((coerce/select-contract stx-name rng) pos-blame neg-blame src-info orig-str)])
(let ([res-id (rng-id (val (dom-id x) ...))])
(check-post-expr->pp/h post-expr src-info pos-blame neg-blame orig-str))))))]
(check-post-expr->pp/h post-expr src-info pos-blame neg-blame orig-str)
res-id)))))]
[_
(raise-syntax-error name "unknown result specification" stx (syntax result-stuff))]))))))]
[(_ ([x dom] ...) pre-expr . result-stuff)

View File

@ -899,6 +899,74 @@
'->r22
'((contract (->r () rst (listof number?) any/c) (lambda w 1) 'pos 'neg) #f))
(test/spec-passed/result
'->r23
'((contract (->r ((i number?) (j (and/c number? (>=/c i)))) number?)
(λ (i j) 1)
'pos
'neg)
1
2)
1)
(test/spec-passed/result
'->r24
'((contract (->r ((i number?) (j (and/c number? (>=/c i)))) any)
(λ (i j) 1)
'pos
'neg)
1
2)
1)
(test/spec-passed/result
'->r25
'(call-with-values
(λ ()
((contract (->r ((i number?) (j (and/c number? (>=/c i)))) (values [x number?] [y number?]))
(λ (i j) (values 1 2))
'pos
'neg)
1
2))
list)
'(1 2))
(test/spec-passed/result
'->r26
'((contract (->r ((i number?) (j (and/c number? (>=/c i)))) rest-args any/c number?)
(λ (i j . z) 1)
'pos
'neg)
1
2)
1)
(test/spec-passed/result
'->r27
'((contract (->r ((i number?) (j (and/c number? (>=/c i)))) rest-args any/c any)
(λ (i j . z) 1)
'pos
'neg)
1
2)
1)
(test/spec-passed/result
'->r28
'(call-with-values
(λ ()
((contract (->r ((i number?) (j (and/c number? (>=/c i)))) rest-args any/c (values [x number?] [y number?]))
(λ (i j . z) (values 1 2))
'pos
'neg)
1
2))
list)
'(1 2))
(test/pos-blame
'->pp1
'((contract (->pp ([x number?]) (= x 1) number? result (= x 2))