fix bug in ->i expansion when the name ctc is used in certain ways

This commit is contained in:
Robby Findler 2014-09-19 17:57:17 -05:00
parent ad7e2a71b7
commit 929ed92f40

View File

@ -845,11 +845,11 @@ evaluted left-to-right.)
#`(λ #,wrapper-proc-arglist #`(λ #,wrapper-proc-arglist
(λ (val) (λ (val)
(chk val #,(and (syntax-parameter-value #'making-a-method) #t)) (chk val #,(and (syntax-parameter-value #'making-a-method) #t))
(let ([arg-checker (impersonate-procedure
(λ #,(args/vars->arglist an-istx wrapper-args this-param) val
#,wrapper-body)]) (let ([arg-checker
(impersonate-procedure (λ #,(args/vars->arglist an-istx wrapper-args this-param)
val #,wrapper-body)])
(make-keyword-procedure (make-keyword-procedure
(λ (kwds kwd-args . args) (λ (kwds kwd-args . args)
(with-continuation-mark (with-continuation-mark
@ -858,9 +858,9 @@ evaluted left-to-right.)
(λ args (λ args
(with-continuation-mark (with-continuation-mark
contract-continuation-mark-key blame contract-continuation-mark-key blame
(apply arg-checker args)))) (apply arg-checker args)))))
impersonator-prop:contracted ctc impersonator-prop:contracted ctc
impersonator-prop:blame blame))))))) impersonator-prop:blame blame))))))
(define-for-syntax (arg/res-to-indy-var indy-arg-vars ordered-args indy-res-vars ordered-ress var) (define-for-syntax (arg/res-to-indy-var indy-arg-vars ordered-args indy-res-vars ordered-ress var)
(define (try vars ordered) (define (try vars ordered)