Register type of loop lambdas generated by the for macros.
This commit is contained in:
parent
b0d299d1b8
commit
27f0e50d53
|
@ -565,10 +565,11 @@
|
||||||
[(tc-result1: t) (tc-error/expr #:return (ret (Un))
|
[(tc-result1: t) (tc-error/expr #:return (ret (Un))
|
||||||
"Cannot apply expression of type ~a, since it is not a function type" t)])]
|
"Cannot apply expression of type ~a, since it is not a function type" t)])]
|
||||||
;; even more special case for match
|
;; even more special case for match
|
||||||
[(#%plain-app (letrec-values ([(lp) (#%plain-lambda args . body)]) lp*) . actuals)
|
[(#%plain-app (letrec-values ([(lp) (~and lam (#%plain-lambda args . body))]) lp*) . actuals)
|
||||||
#:fail-unless expected #f
|
#:fail-unless expected #f
|
||||||
#:fail-unless (not (andmap type-annotation (syntax->list #'(lp . args)))) #f
|
#:fail-unless (not (andmap type-annotation (syntax->list #'(lp . args)))) #f
|
||||||
#:fail-unless (free-identifier=? #'lp #'lp*) #f
|
#:fail-unless (free-identifier=? #'lp #'lp*) #f
|
||||||
|
(add-typeof-expr #'lam expected)
|
||||||
(let-loop-check form #'lp #'actuals #'args #'body expected)]
|
(let-loop-check form #'lp #'actuals #'args #'body expected)]
|
||||||
;; special cases for classes
|
;; special cases for classes
|
||||||
[(#%plain-app make-object cl . args)
|
[(#%plain-app make-object cl . args)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user