diff options
author | Philip Kaludercic <philipk@posteo.net> | 2022-10-08 11:56:23 +0200 |
---|---|---|
committer | Philip Kaludercic <philipk@posteo.net> | 2022-10-08 11:56:23 +0200 |
commit | 8cfeb8a9e0f69e3cd11aebe03da876e1c713a85f (patch) | |
tree | 8c659b28a97749655e862647e84e8e1d58c2303e /lisp/emacs-lisp/macroexp.el | |
parent | bb2bd2ed91e123d66dfdf296a14e4cdd6739e2b6 (diff) | |
parent | 59df0a7bd9e54003108c938519d64f6607cf48d8 (diff) | |
download | emacs-8cfeb8a9e0f69e3cd11aebe03da876e1c713a85f.tar.gz emacs-8cfeb8a9e0f69e3cd11aebe03da876e1c713a85f.tar.bz2 emacs-8cfeb8a9e0f69e3cd11aebe03da876e1c713a85f.zip |
Merge branch 'master' into feature/package+vc
Diffstat (limited to 'lisp/emacs-lisp/macroexp.el')
-rw-r--r-- | lisp/emacs-lisp/macroexp.el | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el index 5ae9d8368f0..f4df40249de 100644 --- a/lisp/emacs-lisp/macroexp.el +++ b/lisp/emacs-lisp/macroexp.el @@ -110,7 +110,8 @@ each clause." (let ((symbols-with-pos-enabled t)) (apply handler form (cdr form))) (error - (message "Compiler-macro error for %S: Handler: %S\n%S" (car form) handler err) + (message "Warning: Optimization failure for %S: Handler: %S\n%S" + (car form) handler err) form))) (defun macroexp--funcall-if-compiled (_form) @@ -187,13 +188,15 @@ It should normally be a symbol with position and it defaults to FORM." msg)) form))) -(defun macroexp--obsolete-warning (fun obsolescence-data type) +(defun macroexp--obsolete-warning (fun obsolescence-data type &optional key) (let ((instead (car obsolescence-data)) (asof (nth 2 obsolescence-data))) (format-message "`%s' is an obsolete %s%s%s" fun type (if asof (concat " (as of " asof ")") "") (cond ((stringp instead) (concat "; " (substitute-command-keys instead))) + ((and instead key) + (format-message "; use `%s' (%s) instead." instead key)) (instead (format-message "; use `%s' instead." instead)) (t "."))))) @@ -369,6 +372,11 @@ Assumes the caller has bound `macroexpand-all-environment'." (macroexp--all-forms body)) (cdr form)) form))) + (`(while) + (macroexp-warn-and-return + "missing `while' condition" + `(signal 'wrong-number-of-arguments '(while 0)) + nil 'compile-only form)) (`(setq ,(and var (pred symbolp) (pred (not booleanp)) (pred (not keywordp))) ,expr) |