* 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:
parent
6a30c9dec9
commit
4010a39c2d
|
@ -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] ...) (quasisyntax/loc stx (ty ...))]
|
||||||
[([var : ty] ... . [rest : rest-ty star])
|
[([var : ty] ... . [rest : rest-ty star])
|
||||||
(eq? '* (syntax-e #'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])
|
[([var : ty] ... . [rest : rest-ty ddd bound])
|
||||||
(eq? '... (syntax-e #'ddd))
|
(eq? '... (syntax-e #'ddd))
|
||||||
(syntax/loc stx (ty ... rest-ty ddd bound))]
|
(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)
|
[(_ arg : ty)
|
||||||
(syntax-property #'arg 'type-ascription #'ty)]
|
(syntax-property #'arg 'type-ascription #'ty)]
|
||||||
[(_ arg ty)
|
[(_ arg ty)
|
||||||
(syntax-property #'arg 'type-ascription #'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)]))
|
|
||||||
|
|
||||||
(define-syntax (: stx)
|
(define-syntax (: stx)
|
||||||
(let ([stx*
|
(let ([stx*
|
||||||
|
|
Loading…
Reference in New Issue
Block a user