From f26b793e9a568ca1d68855b416b18bfa62f23e14 Mon Sep 17 00:00:00 2001 From: Ben Greenman Date: Fri, 19 Apr 2019 21:01:17 -0400 Subject: [PATCH] recursive contract: add else-branch to a cond Raise an exception if none of the other cases match, instead of returning `(void)` where a contract is expected --- racket/collects/racket/contract/private/base.rkt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/racket/collects/racket/contract/private/base.rkt b/racket/collects/racket/contract/private/base.rkt index 1249b29e8b..ca855c4e6a 100644 --- a/racket/collects/racket/contract/private/base.rkt +++ b/racket/collects/racket/contract/private/base.rkt @@ -210,7 +210,9 @@ [(chaperone-recursive-contract? ctc) (coerce-chaperone-contract 'recursive-contract (thunk))] [(impersonator-recursive-contract? ctc) - (coerce-contract 'recursive-contract (thunk))])) + (coerce-contract 'recursive-contract (thunk))] + [else ;; internal error + (raise-argument-error 'force-recursive-contract "recursive-contract?" ctc)])) (when (recursive-contract-list-contract? ctc) (unless (list-contract? forced-ctc) (raise-argument-error 'recursive-contract "list-contract?" forced-ctc)))