diff --git a/collects/scheme/private/contract-guts.ss b/collects/scheme/private/contract-guts.ss index 6a5a45f977..621761c6d4 100644 --- a/collects/scheme/private/contract-guts.ss +++ b/collects/scheme/private/contract-guts.ss @@ -145,7 +145,7 @@ [(contract? x) x] [(and (procedure? x) (procedure-arity-includes? x 1)) (make-predicate-contract (or (object-name x) '???) x)] - [(or (symbol? x) (boolean? x) (char? x)) (make-eq-contract x)] + [(or (symbol? x) (boolean? x) (char? x) (null? x)) (make-eq-contract x)] [(or (bytes? x) (string? x)) (make-equal-contract x)] [(number? x) (make-=-contract x)] [(or (regexp? x) (byte-regexp? x)) (make-regexp/c x)] diff --git a/collects/tests/mzscheme/contract-test.ss b/collects/tests/mzscheme/contract-test.ss index e0f698f057..1c7dbef738 100644 --- a/collects/tests/mzscheme/contract-test.ss +++ b/collects/tests/mzscheme/contract-test.ss @@ -4540,6 +4540,7 @@ so that propagation occurs. (test-flat-contract #rx#".x." #"axq" #"x") (test-flat-contract #rx".x." #"axq" #"x") (test-flat-contract #rx#".x." "axq" "x") + (test-flat-contract ''() '() #f) (test/spec-passed 'any/c '(contract any/c 1 'pos 'neg)) (test-flat-contract 'printable/c (vector (cons 1 (box #f))) (lambda (x) x))