From 1b4442bee921d6698fc8ecac1c95c39f7ca2efe4 Mon Sep 17 00:00:00 2001 From: Mark Oteiza Date: Wed, 15 Feb 2017 20:40:46 -0500 Subject: [PATCH] Don't expand body inside a let-binding when there are no bindings * lisp/emacs-lisp/pcase.el (pcase-codegen): Only let-bind if VARS is non-nil. --- lisp/emacs-lisp/pcase.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el index 46a5eedd150..289265abf27 100644 --- a/lisp/emacs-lisp/pcase.el +++ b/lisp/emacs-lisp/pcase.el @@ -437,8 +437,10 @@ to this macro." ;; Don't use let*, otherwise macroexp-let* may merge it with some surrounding ;; let* which might prevent the setcar/setcdr in pcase--expand's fancy ;; codegen from later metamorphosing this let into a funcall. - `(let ,(mapcar (lambda (b) (list (car b) (cdr b))) vars) - ,@code)) + (if vars + `(let ,(mapcar (lambda (b) (list (car b) (cdr b))) vars) + ,@code) + `(progn ,@code))) (defun pcase--small-branch-p (code) (and (= 1 (length code)) -- 2.39.5