diff --git a/pkgs/racket-test/tests/racket/contract/random-generate.rkt b/pkgs/racket-test/tests/racket/contract/random-generate.rkt index 52ab7b1aea..1681dfe32e 100644 --- a/pkgs/racket-test/tests/racket/contract/random-generate.rkt +++ b/pkgs/racket-test/tests/racket/contract/random-generate.rkt @@ -2,6 +2,7 @@ (require racket/contract racket/contract/private/generate-base + (only-in racket/list empty? cons?) rackunit racket/math (for-syntax racket/base)) @@ -112,6 +113,21 @@ (test-contract-generation null?))) +(check-not-exn + (λ () + (test-contract-generation + empty?))) + +(check-not-exn + (λ () + (test-contract-generation + pair?))) + +(check-not-exn + (λ () + (test-contract-generation + cons?))) + (check-not-exn (λ () (test-contract-generation diff --git a/racket/collects/racket/contract/private/guts.rkt b/racket/collects/racket/contract/private/guts.rkt index 2f52515808..530aa31f06 100644 --- a/racket/collects/racket/contract/private/guts.rkt +++ b/racket/collects/racket/contract/private/guts.rkt @@ -366,12 +366,14 @@ [(and (procedure? x) (procedure-arity-includes? x 1)) (cond [(chaperone-of? x null?) list/c-empty] + [(chaperone-of? x empty?) list/c-empty] [(chaperone-of? x list?) (unless listof-any (error 'coerce-contract/f::listof-any "too soon!")) listof-any] [(chaperone-of? x boolean?) boolean?/c] - [(chaperone-of? x pair?) + [(or (chaperone-of? x pair?) + (chaperone-of? x cons?)) (unless consc-anyany (error 'coerce-contract/f::consc-anyany "too soon!")) consc-anyany]