diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-lambda-unit.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-lambda-unit.rkt index 94bc4592c2..5ef586df0c 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-lambda-unit.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/tc-lambda-unit.rkt @@ -120,8 +120,8 @@ [else (define base-rest-type (cond - [rest-ty rest-ty] [(type-annotation rest) (get-type rest #:default Univ)] + [rest-ty rest-ty] [else Univ])) (define extra-types (if (<= arg-len tys-len) diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/fail/pr10936.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/fail/pr10936.rkt new file mode 100644 index 0000000000..855aa11de5 --- /dev/null +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/fail/pr10936.rkt @@ -0,0 +1,9 @@ +#; +(exn-pred 2) +#lang typed/racket +(define: my-rest : (All (elem) (elem elem * -> (Listof elem))) + (lambda ( #{ arg : elem} . #{ tail : (Listof elem) }) + (rest tail))) +(define: my-rest2 : (All (elem) (elem elem * -> (Listof elem))) + (lambda ( #{ arg : elem} . #{ tail : elem }) + (rest tail)))