Fix parsing of dotted rest when there is an expected type.
Closes PR 13646.
This commit is contained in:
parent
5669c372b2
commit
3d49087ea3
17
collects/tests/typed-racket/succeed/pr13646.rkt
Normal file
17
collects/tests/typed-racket/succeed/pr13646.rkt
Normal file
|
@ -0,0 +1,17 @@
|
|||
#lang typed/racket
|
||||
|
||||
(struct: (A) Queue ([elem : A]))
|
||||
|
||||
(: qmap :
|
||||
(All (A B ...)
|
||||
(case->
|
||||
((A -> A) (Queue A) -> (Queue A))
|
||||
((A B ... B -> A) (Queue A) (Queue B) ... B -> (Queue A)))))
|
||||
(define qmap
|
||||
(pcase-lambda:
|
||||
(A B ...)
|
||||
[([func : (A -> A)] [deq : (Queue A)])
|
||||
deq]
|
||||
[([func : (A B ... B -> A)]
|
||||
[deq : (Queue A)] . [deqs : (Queue B) ... B])
|
||||
deq]))
|
|
@ -101,7 +101,7 @@
|
|||
[(dotted? rest)
|
||||
=>
|
||||
(lambda (b)
|
||||
(let ([dty (get-type rest #:default Univ)])
|
||||
(let ([dty (extend-tvars (list b) (get-type rest #:default Univ))])
|
||||
(with-lexical-env/extend
|
||||
(list rest) (list (make-ListDots dty b))
|
||||
(check-body))))]
|
||||
|
|
Loading…
Reference in New Issue
Block a user