diff --git a/collects/racket/contract/private/arr-i.rkt b/collects/racket/contract/private/arr-i.rkt index 5918f0fa23..62947cd9a9 100644 --- a/collects/racket/contract/private/arr-i.rkt +++ b/collects/racket/contract/private/arr-i.rkt @@ -752,7 +752,9 @@ #,(and (istx-ress an-istx) (for/list ([a-res (in-list (istx-ress an-istx))]) `(,(if (arg/res-vars a-res) 'dep 'nodep) - ,(syntax-e (arg/res-var a-res)) + ,(if (eres? a-res) + '_ + (syntax-e (arg/res-var a-res))) ,(if (arg/res-vars a-res) (map syntax-e (arg/res-vars a-res)) '()) diff --git a/collects/tests/racket/contract-test.rktl b/collects/tests/racket/contract-test.rktl index e0b10c2d85..1b2c3b0753 100644 --- a/collects/tests/racket/contract-test.rktl +++ b/collects/tests/racket/contract-test.rktl @@ -8881,6 +8881,8 @@ so that propagation occurs. (->i () #:pre () #t [q () number?] #:post () #t)) (test-name '(->i ([x integer?]) #:pre (x) ... [q (x) ...] #:post (x) ...) (->i ([x integer?]) #:pre (x) #t [q (x) number?] #:post (x) #t)) + (test-name '(->i ([x real?]) [_ (x) ...]) + (->i ([x real?]) [_ (x) (>/c x)])) (test-name '(case->) (case->)) (test-name '(case-> (-> integer? any) (-> boolean? boolean? any) (-> char? char? char? any))