From 01a7caded8a73d74a488309a903d4493f876e9e7 Mon Sep 17 00:00:00 2001 From: Asumu Takikawa Date: Mon, 9 Dec 2013 23:56:11 -0500 Subject: [PATCH] Fix types for `remove` and friends. A few of these had unnecessary uses of type variables. The type for `remove*` was unsound. Please merge to v6.0 original commit: a98e4c5474f83cc146b62baf64c3fa2ee8132fef --- .../typed-racket/base-env/base-env.rkt | 12 ++++++------ .../typed-racket/unit-tests/typecheck-tests.rkt | 8 ++++++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env.rkt index 3c33ac7e..85a0a011 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env.rkt @@ -563,12 +563,12 @@ ((a . -> . Univ) (-lst a) . -> . (-lst a))))] [shuffle (-poly (a) (-> (-lst a) (-lst a)))] -[remove (-poly (a) (a (-lst a) . -> . (-lst a)))] -[remq (-poly (a) (a (-lst a) . -> . (-lst a)))] -[remv (-poly (a) (a (-lst a) . -> . (-lst a)))] -[remove* (-poly (a b) ((-lst a) (-lst a) [(a b . -> . B)] . ->opt . (-lst b)))] -[remq* (-poly (a) (cl-> [((-lst a) (-lst a)) (-lst a)]))] -[remv* (-poly (a) (cl-> [((-lst a) (-lst a)) (-lst a)]))] +[remove (-poly (a) (Univ (-lst a) . -> . (-lst a)))] +[remq (-poly (a) (Univ (-lst a) . -> . (-lst a)))] +[remv (-poly (a) (Univ (-lst a) . -> . (-lst a)))] +[remove* (-poly (a b) ((-lst a) (-lst b) [(a b . -> . B)] . ->opt . (-lst b)))] +[remq* (-poly (a) (-> (-lst Univ) (-lst a) (-lst a)))] +[remv* (-poly (a) (-> (-lst Univ) (-lst a) (-lst a)))] #| [sort (-poly (a b) (cl->* ((-lst a) (a a . -> . B) #:cache-keys? B #f diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt index c91b3217..b0537ae3 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt @@ -1888,6 +1888,14 @@ [tc-e (string-trim " foo bar baz \r\n\t" " " #:repeat? #t) -String] + + ;; remove and friends + [tc-e (remq #f '(1 2 3 4)) (-lst -PosByte)] + [tc-e (remv #f '(1 2 3 4)) (-lst -PosByte)] + [tc-e (remove #f '(1 2 3 4)) (-lst -PosByte)] + [tc-e (remove* '(1 2) '(a b c d)) (-lst (one-of/c 'a 'b 'c 'd))] + [tc-e (remq* '(1 2) '(a b c d)) (-lst (one-of/c 'a 'b 'c 'd))] + [tc-e (remv* '(1 2) '(a b c d)) (-lst (one-of/c 'a 'b 'c 'd))] ) (test-suite "tc-literal tests"