Parse (A -> B : C) correctly, B can't be a `values'

svn: r14858

original commit: e269f7aa7c0bf75b823e5f67931b4a9c5fb61723
This commit is contained in:
Sam Tobin-Hochstadt 2009-05-18 22:18:19 +00:00
parent d6a1b098ca
commit 0c647544df

View File

@ -356,7 +356,8 @@
(eq? (syntax-e #':) ':))
(begin
(add-type-name-reference (stx-cadr stx))
(make-pred-ty (list (parse-type #'dom)) (parse-values-type #'rng) (parse-type #'pred-ty)))]
;; use parse-type instead of parse-values-type because we need to add the filters from the pred-ty
(make-pred-ty (list (parse-type #'dom)) (parse-type #'rng) (parse-type #'pred-ty)))]
[(dom ... rest ::: -> rng)
(and (eq? (syntax-e #'->) '->)
(eq? (syntax-e #':::) '*))