diff --git a/collects/tests/typed-racket/unit-tests/typecheck-tests.rkt b/collects/tests/typed-racket/unit-tests/typecheck-tests.rkt index 58412b00..788252f0 100644 --- a/collects/tests/typed-racket/unit-tests/typecheck-tests.rkt +++ b/collects/tests/typed-racket/unit-tests/typecheck-tests.rkt @@ -822,7 +822,15 @@ [tc-e - (call-with-values (lambda () (time-apply + (list 1 2))) + (call-with-values (lambda () ((inst time-apply Number Number Number) + (list 1 2))) + (lambda: ([v : (Listof Number)] + [cpu : Number] + [user : Number] + [gc : Number]) + 'whatever)) + #:ret (ret (-val 'whatever) -true-filter)] + [tc-e + (call-with-values (lambda () ((inst time-apply Number Number Number Number Number Number Number) + (list 1 2 3 4 5 6))) (lambda: ([v : (Listof Number)] [cpu : Number] [user : Number] diff --git a/collects/typed-racket/base-env/base-env.rkt b/collects/typed-racket/base-env/base-env.rkt index 7a0d94dc..5c6f032f 100644 --- a/collects/typed-racket/base-env/base-env.rkt +++ b/collects/typed-racket/base-env/base-env.rkt @@ -25,12 +25,14 @@ racket/file (only-in racket/private/pre-base new-apply-proc) (only-in (types abbrev numeric-tower) [-Number N] [-Boolean B] [-Symbol Sym]) - (only-in (rep type-rep) make-MPairTop + (only-in (rep type-rep) + make-MPairTop make-BoxTop make-ChannelTop make-VectorTop make-ThreadCellTop make-Ephemeron make-CustodianBox - make-HeterogenousVector)) + make-HeterogenousVector + make-ListDots)) ;Section 9.2 @@ -564,20 +566,12 @@ [apply (-poly (a b) (((list) a . ->* . b) (-lst a) . -> . b))] [new-apply-proc (-poly (a b) (((list) a . ->* . b) (-lst a) . -> . b))] [kernel:apply (-poly (a b) (((list) a . ->* . b) (-lst a) . -> . b))] -[time-apply (-poly (a b c) - (cl->* - (-> - (-> a) - (-Tuple (list)) - (-values (list (-pair a (-val '())) -Nat -Nat -Nat))) - (-> - (-> b a) - (-Tuple (list b)) - (-values (list (-pair a (-val '())) -Nat -Nat -Nat))) - (-> - (-> b c a) - (-Tuple (list b c)) - (-values (list (-pair a (-val '())) -Nat -Nat -Nat)))))] +[time-apply + (-polydots (b a) (cl->* + (-> (-> b) (-val '()) (-values (list (-pair b (-val '())) -Nat -Nat -Nat))) + (-> (->... '() (a a) b) + (make-ListDots a 'a) + (-values (list (-pair b (-val '())) -Nat -Nat -Nat)))))] [call/cc (-poly (a b) (((a . -> . (Un)) . -> . b) . -> . (Un a b)))] [call/ec (-poly (a b) (((a . -> . (Un)) . -> . b) . -> . (Un a b)))]