From: Paul Pogonyshev Date: Sun, 12 Mar 2017 08:51:23 +0000 (+0100) Subject: Fix bug in generator function with pcase (Bug#26068) X-Git-Tag: emacs-26.0.90~544 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0d112c00ba0ec14bd3014efcd3430b9ddcfe1fc1;p=emacs.git Fix bug in generator function with pcase (Bug#26068) * lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand): Remove some calls to symbol-name. --- diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 40342f3fe48..58bcdd52acf 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2059,8 +2059,8 @@ except that it additionally expands symbol macros." (pcase exp ((pred symbolp) ;; Perform symbol-macro expansion. - (when (cdr (assq (symbol-name exp) env)) - (setq exp (cadr (assq (symbol-name exp) env))))) + (when (cdr (assq exp env)) + (setq exp (cadr (assq exp env))))) (`(setq . ,_) ;; Convert setq to setf if required by symbol-macro expansion. (let* ((args (mapcar (lambda (f) (cl--sm-macroexpand f env)) @@ -2078,7 +2078,7 @@ except that it additionally expands symbol macros." (let ((letf nil) (found nil) (nbs ())) (dolist (binding bindings) (let* ((var (if (symbolp binding) binding (car binding))) - (sm (assq (symbol-name var) env))) + (sm (assq var env))) (push (if (not (cdr sm)) binding (let ((nexp (cadr sm))) @@ -2149,7 +2149,7 @@ by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...). (let ((expansion ;; FIXME: For N bindings, this will traverse `body' N times! (macroexpand-all (macroexp-progn body) - (cons (list (symbol-name (caar bindings)) + (cons (list (caar bindings) (cl-cadar bindings)) macroexpand-all-environment)))) (if (or (null (cdar bindings)) (cl-cddar bindings))