Copy properties when optimizing bodies of lambda/define-values.

Closes PR 11860.

original commit: 981616d504c1c0c6f91effedc6166a324de328e3
This commit is contained in:
Sam Tobin-Hochstadt 2011-04-18 15:40:31 -04:00
parent edd83d1c06
commit 8ebebdeb8f

View File

@ -37,7 +37,9 @@
;; boring cases, just recur down
(pattern ((~and op (~or (~literal #%plain-lambda) (~literal define-values)))
formals e:expr ...)
#:with opt #`(op formals #,@(syntax-map (optimize) #'(e ...))))
#:with opt (syntax-track-origin (quasisyntax/loc this-syntax (op formals #,@(syntax-map (optimize) #'(e ...))))
this-syntax
#'op))
(pattern (case-lambda [formals e:expr ...] ...)
;; optimize all the bodies
#:with (opt-parts ...)