#277 closed defect (fixed)
keywords should not be renamed by syntax expansion
Reported by: | felix winkelmann | Owned by: | felix winkelmann |
---|---|---|---|
Priority: | critical | Milestone: | |
Component: | expander | Version: | 4.5.x |
Keywords: | keywords | Cc: | sjamaan |
Estimated difficulty: |
Description
(Example by sjamaan)
(define-syntax foo (syntax-rules () ((foo procname) (define (procname #!key (who "world")) (print "hello, " who))))) (foo bar) (bar who: 1)
expands into:
(set! bar (##core#lambda tmp3839 (let ((who3040 (##sys#get-keyword 'who30: tmp3839 (##core#lambda () '"world")))) (let () (print '"hello, " who3040)))))
and doesn't detect the "who:" keyword correctly on invocation.
Note that the who
variable must be renamed, the keyword not.
Note: See
TracTickets for help on using
tickets.
Fixed in 3095a8700d0bda4c6a145c70ca5ae1ced6023389 (master).