diff --git a/typed-racket-lib/typed-racket/types/overlap.rkt b/typed-racket-lib/typed-racket/types/overlap.rkt index eb02035b..fcb1a227 100644 --- a/typed-racket-lib/typed-racket/types/overlap.rkt +++ b/typed-racket-lib/typed-racket/types/overlap.rkt @@ -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)] diff --git a/typed-racket-test/main.rkt b/typed-racket-test/main.rkt index e52b3db3..e8db2549 100644 --- a/typed-racket-test/main.rkt +++ b/typed-racket-test/main.rkt @@ -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)