diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/private/parse-type.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/private/parse-type.rkt index 93139460..e5749275 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/private/parse-type.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/private/parse-type.rkt @@ -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 ...)) diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/parse-type-tests.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/parse-type-tests.rkt index f8458f98..fdc981ec 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/parse-type-tests.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/parse-type-tests.rkt @@ -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