diff --git a/typed-racket-lib/typed-racket/base-env/base-env.rkt b/typed-racket-lib/typed-racket/base-env/base-env.rkt index 2181de59..2aea9dfc 100644 --- a/typed-racket-lib/typed-racket/base-env/base-env.rkt +++ b/typed-racket-lib/typed-racket/base-env/base-env.rkt @@ -3033,7 +3033,8 @@ (-polydots (b a) (cl->* (-Pathlike (Un (-lst -String) (-vec -String)) - (-lst (-pair mode-sym (-lst (-lst Univ)))) + (-lst (Un (-pair mode-sym (-lst (-lst Univ))) + (-pair (-val 'ps) (-lst -String)))) ((list Univ) [a a] . ->... . b) (-lst -String) . -> . b))))] diff --git a/typed-racket-test/succeed/command-line-ps.rkt b/typed-racket-test/succeed/command-line-ps.rkt new file mode 100644 index 00000000..c3cd3c52 --- /dev/null +++ b/typed-racket-test/succeed/command-line-ps.rkt @@ -0,0 +1,13 @@ +#lang typed/racket + +(define *message* : (Parameterof (Listof String)) (make-parameter '())) +(define *verbose* : (Parameterof Boolean) (make-parameter #f)) + +(define (parse-cmdline) + (command-line + #:program "q" + #:once-each + [("-v" "--verbose") "verbose mode" (*verbose* #t)] + #:ps "foo bar" ; <---- causing type error + #:args #{msg : String} (*message* msg))) +