From d35f41728c283ef04b913a7e2979cc952903652d Mon Sep 17 00:00:00 2001 From: "J. Ian Johnson" Date: Sun, 22 Jun 2014 19:37:30 -0400 Subject: [PATCH] Fixed support for valuesdots with let/ec. --- .../typed-racket/base-env/annotate-classes.rkt | 6 ++---- .../tests/typed-racket/succeed/call-comp.rkt | 4 ++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/annotate-classes.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/annotate-classes.rkt index 539330f671..6b3aa0760b 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/annotate-classes.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/annotate-classes.rkt @@ -63,10 +63,8 @@ #:with ann-name (type-label-property #'name (syntax-parse #'ty - [((~or :Values^ :values^) tys ... dty :ddd/bound) - #'(tys ... dty -> (U))] - [((~or :Values^ :values^) tys ... dty _:ddd) - #'(tys ... dty -> (U))] + [((~or :Values^ :values^) tys ... dty b:ddd) + #'(tys ... dty b -> (U))] [((~or :Values^ :values^) tys ...) #'(tys ... -> (U))] [t #'(t -> (U))])))) diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/succeed/call-comp.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/succeed/call-comp.rkt index 40f95af1a5..25ced2385d 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/succeed/call-comp.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/succeed/call-comp.rkt @@ -18,3 +18,7 @@ ((inst call/ec Integer Integer Integer) (lambda ([f : (Integer Integer -> Nothing)]) (f 0 1))) (let/cc k : (values String Symbol Boolean) (+ 5 (k "result arity doesn't matter" 'hahaha #t))) + +(: r : (All (a b ...) (-> a b ... b (values a b ... b)))) +(define (r A . bs) (let/ec break : (values a b ... b) (apply break A bs))) +(r 0 1 2 3 4 5)