diff --git a/pkgs/racket-test/tests/racket/contract/arrow-i.rkt b/pkgs/racket-test/tests/racket/contract/arrow-i.rkt index dcb928a031..4bf4c7ebee 100644 --- a/pkgs/racket-test/tests/racket/contract/arrow-i.rkt +++ b/pkgs/racket-test/tests/racket/contract/arrow-i.rkt @@ -140,6 +140,10 @@ (contract-syntax-error-test '->i-stx23 #'(->i ([f (f x) any/c]) (#:x [x any/c]) [res any/c])) + + (test/spec-passed + '->i-stx24 + '(->i () (values))) (test/spec-passed '->i1 diff --git a/racket/collects/racket/contract/private/arr-i.rkt b/racket/collects/racket/contract/private/arr-i.rkt index fd39fa8167..120e641a05 100644 --- a/racket/collects/racket/contract/private/arr-i.rkt +++ b/racket/collects/racket/contract/private/arr-i.rkt @@ -824,7 +824,8 @@ evaluted left-to-right.) indy-arg-vars ordered-args indy-res-vars ordered-ress stx) (cond - [(and (istx-ress an-istx) + [(and (positive? (vector-length res-proj-vars)) + (istx-ress an-istx) (andmap eres? (istx-ress an-istx))) (for/fold ([body stx]) ([an-arg/res (in-list (reverse (istx-ress an-istx)))]