Fix parsing for keyword & rest arg function types
Closes PR 14309 original commit: b9493ab142e910053ffe7db7d30fe434e8ba2de1
This commit is contained in:
parent
9926acb187
commit
99f3f62a6e
|
@ -323,7 +323,7 @@
|
|||
(parse-type #'rng)
|
||||
: (-FS (attribute latent.positive) (attribute latent.negative))
|
||||
: (attribute latent.object))]
|
||||
[(dom:non-keyword-ty ... rest:non-keyword-ty ddd:star kws:keyword-tys ... :->^ rng)
|
||||
[(dom:non-keyword-ty ... kws:keyword-tys ... rest:non-keyword-ty ddd:star :->^ rng)
|
||||
(make-Function
|
||||
(list (make-arr
|
||||
(parse-types #'(dom ...))
|
||||
|
|
|
@ -135,6 +135,24 @@
|
|||
[FAIL (Struct-Type Integer)]
|
||||
[FAIL (Struct-Type foo)]
|
||||
[Struct-TypeTop (make-StructTypeTop)]
|
||||
|
||||
;; keyword function types
|
||||
[(#:a String -> String)
|
||||
(->optkey [] #:a -String #t -String)]
|
||||
[([#:a String] -> String)
|
||||
(->optkey [] #:a -String #f -String)]
|
||||
[(#:a String #:b String -> String)
|
||||
(->optkey [] #:a -String #t #:b -String #t -String)]
|
||||
[([#:a String] #:b String -> String)
|
||||
(->optkey [] #:a -String #f #:b -String #t -String)]
|
||||
[(#:a String [#:b String] -> String)
|
||||
(->optkey [] #:a -String #t #:b -String #f -String)]
|
||||
[(String #:a String -> String)
|
||||
(->optkey -String [] #:a -String #t -String)]
|
||||
[(String #:a String String * -> String)
|
||||
(->optkey -String [] #:rest -String #:a -String #t -String)]
|
||||
[(String [#:a String] String * -> String)
|
||||
(->optkey -String [] #:rest -String #:a -String #f -String)]
|
||||
))
|
||||
|
||||
;; FIXME - add tests for parse-values-type, parse-tc-results
|
||||
|
|
Loading…
Reference in New Issue
Block a user