]> git.eshelyaron.com Git - emacs.git/commit
Implement and-let*
authorMark Oteiza <mvoteiza@udel.edu>
Tue, 12 Sep 2017 16:44:45 +0000 (12:44 -0400)
committerMark Oteiza <mvoteiza@udel.edu>
Tue, 12 Sep 2017 17:18:06 +0000 (13:18 -0400)
commit4612b2a2b37026bef5a9b8e92878a15dabb9b261
tree2434bb2f510047ae9570086c424266743411a39f
parentc87331a1c04aa4be55be7b944680e4ec486f5b04
Implement and-let*

This also includes changes to if-let and when-let.  The single tuple
special case is ambiguous, and binding a symbol to nil is not as
useful as binding it to its value outside the lexical scope of the
binding.  (Bug#28254)
* etc/NEWS: Mention.
* lisp/emacs-lisp/subr-x.el (internal--listify):
(internal--build-binding-value-form): Extend to account for
solitary symbols and (EXPR) items in binding varlist.
(if-let*, when-let*): Nix single tuple case and incumbent
bind-symbol-to-nil behavior.
(and-let*): New macro.
(if-let, when-let): Mark obsolete.  Redefine in terms of if-let*, so
they implicitly gain the new features without breaking existing code.
* test/lisp/emacs-lisp/subr-x-tests.el: Adjust tests for: lack of
single-tuple special case, lack of binding solitary symbols to nil,
and the introduction of uninterned symbols for (EXPR) bindings.  Add
SRFI-2 test suite adapted to Elisp.
etc/NEWS
lisp/emacs-lisp/subr-x.el
test/lisp/emacs-lisp/subr-x-tests.el