fix error in blame assignment for -> with dot-args.

closes PR 12608
This commit is contained in:
Robby Findler 2012-02-28 20:13:50 -06:00
parent b8d3219b1b
commit 7d683c7faf
2 changed files with 10 additions and 4 deletions

View File

@ -390,7 +390,7 @@ v4 todo:
(λ (kwds kwd-args . args)
(define args-len (length args))
(unless (valid-number-of-args? args)
(raise-blame-error blame val
(raise-blame-error (blame-swap blame) val
"received ~a argument~a, expected ~a"
args-len (if (= args-len 1) "" "s") arity-string))
@ -398,12 +398,12 @@ v4 todo:
;; (since the keyword lists are sorted)
(for ([req-kwd (in-list req-kwd)])
(unless (memq req-kwd kwds)
(raise-blame-error blame val
(raise-blame-error (blame-swap blame) val
"expected keyword argument ~a"
req-kwd)))
(for ([k (in-list kwds)])
(unless (memq k all-kwds)
(raise-blame-error blame val
(raise-blame-error (blame-swap blame) val
"received unexpected keyword argument ~a"
k)))
(keyword-apply kwd-lambda kwds kwd-args args))))
@ -412,7 +412,7 @@ v4 todo:
(λ args
(unless (valid-number-of-args? args)
(define args-len (length args))
(raise-blame-error blame val
(raise-blame-error (blame-swap blame) val
"received ~a argument~a, expected ~a"
args-len (if (= args-len 1) "" "s") arity-string))
(apply basic-lambda args))

View File

@ -1118,6 +1118,12 @@
'contract-arrow4
'((contract (integer? . -> . integer?) (lambda (x) #f) 'pos 'neg) 1))
(test/neg-blame
'contract-arrow-arity1
'((contract (-> number? number? number?)
(λ (x . r) x)
'pos 'neg)
1))
(test/spec-passed
'contract-arrow-any1