* Should have used star (bound in syntax-case), not just * in type-of-formals

* I'm pretty sure ann should never get a starred or dotted type, since those
   can't appear outside of an arrow context.
This commit is contained in:
Stevie Strickland 2008-06-18 12:57:52 -04:00
parent 6a30c9dec9
commit 4010a39c2d

View File

@ -114,7 +114,7 @@ This file defines two sorts of primitives. All of them are provided into any mod
[([var : ty] ...) (quasisyntax/loc stx (ty ...))]
[([var : ty] ... . [rest : rest-ty star])
(eq? '* (syntax-e #'star))
(syntax/loc stx (ty ... rest-ty *))]
(syntax/loc stx (ty ... rest-ty star))]
[([var : ty] ... . [rest : rest-ty ddd bound])
(eq? '... (syntax-e #'ddd))
(syntax/loc stx (ty ... rest-ty ddd bound))]
@ -149,15 +149,7 @@ This file defines two sorts of primitives. All of them are provided into any mod
[(_ arg : ty)
(syntax-property #'arg 'type-ascription #'ty)]
[(_ arg ty)
(syntax-property #'arg 'type-ascription #'ty)]
[(_ arg ty star)
(eq? '* (syntax-e #'star))
(syntax-property #'arg 'type-ascription #'ty)]
[(_ arg ty ddd bound)
(eq? '... (syntax-e #'ddd))
(syntax-property (syntax-property #'arg 'type-ascription #'ty)
'type-dotted
#'bound)]))
(syntax-property #'arg 'type-ascription #'ty)]))
(define-syntax (: stx)
(let ([stx*