[racket-dev] [plt] Push #29396: master branch updated
DOn't we want to merge this into 6.1.1?
On Oct 20, 2014, at 3:44 PM, stamourv at racket-lang.org wrote:
> stamourv has updated `master' from 538bb75d64 to 9030680e31.
> http://git.racket-lang.org/plt/538bb75d64..9030680e31
>
> =====[ One Commit ]=====================================================
> Directory summary:
> 16.9% pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/
> 83.0% pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/
>
> ~~~~~~~~~~
>
> 9030680 Vincent St-Amour <stamourv at racket-lang.org> 2014-10-20 11:34
> :
> | Fix types for foldl and foldr with 3 lists.
> |
> | Thanks to Jack Firth for the report.
> :
> M .../tests/typed-racket/unit-tests/typecheck-tests.rkt | 13 +++++++++++++
> M .../typed-racket-lib/typed-racket/base-env/base-env.rkt | 4 ++--
>
> =====[ Overall Diff ]===================================================
>
> pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env.rkt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --- OLD/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env.rkt
> +++ NEW/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/base-env.rkt
> @@ -657,11 +657,11 @@
> (-poly (a b c d)
> (cl-> [((a b . -> . b) b (-lst a)) b]
> [((a b c . -> . c) c (-lst a) (-lst b)) c]
> - [((a b c d . -> . d) d (-lst a) (-lst b) (-lst d)) d]))]
> + [((a b c d . -> . d) d (-lst a) (-lst b) (-lst c)) d]))]
> [foldr (-poly (a b c d)
> (cl-> [((a b . -> . b) b (-lst a)) b]
> [((a b c . -> . c) c (-lst a) (-lst b)) c]
> - [((a b c d . -> . d) d (-lst a) (-lst b) (-lst d)) d]))]
> + [((a b c d . -> . d) d (-lst a) (-lst b) (-lst c)) d]))]
> [filter (-poly (a b) (cl->*
> ((asym-pred a Univ (-FS (-filter b 0) -top))
> (-lst a)
>
> pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> --- OLD/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt
> +++ NEW/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/typecheck-tests.rkt
> @@ -1155,6 +1155,19 @@
> (-polydots (a) ((list) (a a) . ->... . -Integer))]
> |#
>
> + [tc-e (foldl (lambda: ([x : Integer] [acc : String]) acc) "" '(1 2 3))
> + -String]
> + [tc-e (foldl (lambda: ([x : Integer] [y : Float] [acc : String]) acc) "" '(1 2 3) '(1.2 3.4 5.6))
> + -String]
> + [tc-e (foldl (lambda: ([x : Integer] [y : Float] [z : Symbol ] [acc : String]) acc) "" '(1 2 3) '(1.2 3.4 5.6) '(a b c))
> + -String]
> + [tc-e (foldr (lambda: ([x : Integer] [acc : String]) acc) "" '(1 2 3))
> + -String]
> + [tc-e (foldr (lambda: ([x : Integer] [y : Float] [acc : String]) acc) "" '(1 2 3) '(1.2 3.4 5.6))
> + -String]
> + [tc-e (foldr (lambda: ([x : Integer] [y : Float] [z : Symbol ] [acc : String]) acc) "" '(1 2 3) '(1.2 3.4 5.6) '(a b c))
> + -String]
> +
> ;; First is same as second, but with map explicitly instantiated.
> [tc-e/t (plambda: (a ...) [ys : (a ... a -> Number) *]
> (lambda: [zs : a ... a]