Avoid overlap with sequences of the wrong arity.

Fixes #371.
This commit is contained in:
Sam Tobin-Hochstadt 2016-06-08 16:56:38 -04:00
parent b8225e1100
commit 8bcfc71fa8
2 changed files with 14 additions and 2 deletions

View File

@ -69,6 +69,17 @@
(overlap? b b*))]
;; lots of things are sequences, but not values where sequence? produces #f
[((Sequence: _) (Value: v)) #:no-order (sequence? v)]
;; hash tables are two-valued sequences
[((Sequence: (or (list _) (list _ _ _ ...)))
(or (? Hashtable?) (? HashtableTop?)))
#:no-order
#f]
;; these are single-valued sequences
[((Sequence: (list _ _ _ ...))
(or (? Pair?) (? Vector?) (? VectorTop?)))
#:no-order
#f]
;; be conservative about other kinds of sequences
[((Sequence: _) _) #:no-order #t]
;; Values where evt? produces #f cannot be Evt
[((Evt: _) (Value: v)) #:no-order (evt? v)]

View File

@ -172,7 +172,7 @@
int-tests unit-tests compile-benchmarks compile-math
optimization-tests missed-optimization-tests)
(module+ main
;(module+ main
(require racket/vector racket/gui/dynamic rackunit racket/cmdline)
(define exec (make-parameter go/text))
@ -185,6 +185,7 @@
(define math? (make-parameter #f))
(define single (make-parameter #f))
(current-namespace (make-base-namespace))
(printf "~a" (current-command-line-arguments))
(command-line
#:once-each
["-v" "verbose" (verbose? #t)]
@ -221,7 +222,7 @@
(if (math?) (list (compile-math)) '())))])])
(unless (= 0 ((exec) to-run))
(eprintf "Typed Racket Tests did not pass.\n")
(exit 1)))))
(exit 1))));)
;; nightly tests in `run.rkt` for drdr chart continuity
(module test racket/base)