1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-06 20:20:20 +02:00

degenerate let forms

(Best-ability ChangeLog annotation added by Christine Lemmer-Webber.)

* module/language/elisp/compile-tree-il.scm (let): Conditionally invoke
  make-body within make-dynlet or just on its own depending on whether
  or not dynamic? is null?.
This commit is contained in:
Robin Templeton 2014-08-04 23:17:21 -04:00 committed by Christine Lemmer-Webber
parent cd630c1f38
commit 05ea13e910
No known key found for this signature in database
GPG key ID: 4BC025925FF8F4D3

View file

@ -590,12 +590,14 @@
loc loc
(map car dynamic) (map car dynamic)
(if (null? lexical) (if (null? lexical)
(if (null? dynamic)
(make-body)
(make-dynlet loc (make-dynlet loc
(map (compose (cut make-const loc <>) car) (map (compose (cut make-const loc <>) car)
dynamic) dynamic)
(map (compose compile-expr cdr) (map (compose compile-expr cdr)
dynamic) dynamic)
(make-body)) (make-body)))
(let* ((lexical-syms (map (lambda (el) (gensym)) lexical)) (let* ((lexical-syms (map (lambda (el) (gensym)) lexical))
(dynamic-syms (map (lambda (el) (gensym)) dynamic)) (dynamic-syms (map (lambda (el) (gensym)) dynamic))
(all-syms (append lexical-syms dynamic-syms)) (all-syms (append lexical-syms dynamic-syms))