add a test case for the contract system error (and adjust the fix a little bit)

This commit is contained in:
Robby Findler 2011-07-16 22:51:53 -05:00
parent 92671ab3ea
commit 2308701476
2 changed files with 12 additions and 2 deletions

View File

@ -235,7 +235,7 @@ v4 todo:
post ...
rng-results]
[args
(bad-number-of-results blame val rng-len (length args))]))))
(bad-number-of-results blame val rng-len args)]))))
null)])
(let* ([min-method-arity (length doms)]
[max-method-arity (+ min-method-arity (length opt-doms))]
@ -1863,7 +1863,8 @@ v4 todo:
[else
passes?]))
(define (bad-number-of-results blame val rng-len num-values)
(define (bad-number-of-results blame val rng-len args)
(define num-values (length args))
(raise-blame-error blame val
"expected ~a value~a, returned ~a value~a"
rng-len (if (= rng-len 1) "" "s")

View File

@ -886,6 +886,15 @@
'neg)
1))
(test/pos-blame
'contract-arrow-values5
'((contract (-> integer? (values integer? integer?))
(lambda (x) x)
'pos
'neg)
1))
(test/pos-blame
'contract-arrow-keyword1
'(contract (-> integer? any)