From 738529c7dec336718c0b47695e232e428b364cc3 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Sat, 16 Jan 2016 12:37:42 -0600 Subject: [PATCH] fix a bug introduced in 35ce47d97 --- .../tests/racket/contract/arrow.rkt | 18 ++++++++++++++++++ .../collects/racket/contract/private/arrow.rkt | 3 ++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/pkgs/racket-test/tests/racket/contract/arrow.rkt b/pkgs/racket-test/tests/racket/contract/arrow.rkt index c5ecff1614..f5b87900b9 100644 --- a/pkgs/racket-test/tests/racket/contract/arrow.rkt +++ b/pkgs/racket-test/tests/racket/contract/arrow.rkt @@ -487,5 +487,23 @@ 'dynamic->*8 '((contract (dynamic->* #:range-contracts #f) (λ () 1) 'pos 'neg)) 1) + + (test/spec-passed + 'dynamic->*9 + '(begin + ((contract (dynamic->* #:range-contracts (list (or/c 1 2) (or/c 3 4))) + (λ () (values 1 3)) + 'pos + 'neg)) + (void))) + + (test/pos-blame + 'dynamic->*10 + '(begin + ((contract (dynamic->* #:range-contracts (list (or/c 1 2) (or/c 3 4))) + (λ () (values #f #f)) + 'pos + 'neg)) + (void))) ) diff --git a/racket/collects/racket/contract/private/arrow.rkt b/racket/collects/racket/contract/private/arrow.rkt index 9b18263218..26b4a872da 100644 --- a/racket/collects/racket/contract/private/arrow.rkt +++ b/racket/collects/racket/contract/private/arrow.rkt @@ -450,7 +450,8 @@ [(matches-arity-exactly? val min-arity max-arity req-kwd opt-kwd) (if (and (null? req-kwd) (null? opt-kwd)) (cond - [(and basic-unsafe-lambda/result-values-assumed + [(and basic-unsafe-lambda + basic-unsafe-lambda/result-values-assumed (equal? contract-result-val-count (procedure-result-arity val))) (values basic-unsafe-lambda/result-values-assumed #t)]