diff --git a/racket/collects/racket/contract/private/arr-i.rkt b/racket/collects/racket/contract/private/arr-i.rkt index fdf4e7698b..aec73cf7ca 100644 --- a/racket/collects/racket/contract/private/arr-i.rkt +++ b/racket/collects/racket/contract/private/arr-i.rkt @@ -915,7 +915,7 @@ evaluted left-to-right.) blame+neg-party (apply arg-checker args))))) impersonator-prop:contracted ctc - impersonator-prop:blame blame)))))) + impersonator-prop:blame (blame-add-missing-party blame neg-party))))))) (define-for-syntax (arg/res-to-indy-var indy-arg-vars ordered-args indy-res-vars ordered-ress var) (define (try vars ordered) diff --git a/racket/collects/racket/contract/private/opters.rkt b/racket/collects/racket/contract/private/opters.rkt index 849a67cbb1..54e5c750df 100644 --- a/racket/collects/racket/contract/private/opters.rkt +++ b/racket/collects/racket/contract/private/opters.rkt @@ -607,7 +607,8 @@ (null? b))) (chaperone-procedure val exact-proc impersonator-prop:application-mark - (cons opt->/c-cm-key cont-mark-value)) + (cons opt->/c-cm-key cont-mark-value) + impersonator-prop:blame blame) (handle-non-exact-procedure val dom-len blame exact-proc)))) (append lifts-doms lifts-rngs) (append superlifts-doms superlifts-rngs) @@ -678,7 +679,8 @@ (case-lambda [(dom-arg ...) (values next-dom ...)] [args - (bad-number-of-arguments blame val args dom-len)])))) + (bad-number-of-arguments blame val args dom-len)]) + impersonator-prop:blame blame))) (if all-anys? #`(if (procedure-arity-exactly/no-kwds val #,(length doms)) val