Byte compiler: correct output warning message positions
Correct the algorithm for determining the warning position to get the first symbol-with-position in byte-compile--form-stack. * lisp/emacs-lisp/bytecomp.el (byte-compile--first-symbol-with-pos): Function renamed and amended from byte-compile--first-symbol. (byte-compile--warning-source-offset): Call the new function above rather than the old one.
This commit is contained in:
parent
352fc739a1
commit
850074636e
1 changed files with 7 additions and 7 deletions
|
@ -1173,16 +1173,16 @@ message buffer `default-directory'."
|
|||
(f2 (file-relative-name file dir)))
|
||||
(if (< (length f2) (length f1)) f2 f1)))
|
||||
|
||||
(defun byte-compile--first-symbol (form)
|
||||
"Return the \"first\" symbol found in form, or 0 if there is none.
|
||||
(defun byte-compile--first-symbol-with-pos (form)
|
||||
"Return the \"first\" symbol with position found in form, or 0 if none.
|
||||
Here, \"first\" is by a depth first search."
|
||||
(let (sym)
|
||||
(cond
|
||||
((symbolp form) form)
|
||||
((symbol-with-pos-p form) form)
|
||||
((consp form)
|
||||
(or (and (symbolp (setq sym (byte-compile--first-symbol (car form))))
|
||||
(or (and (symbol-with-pos-p (setq sym (byte-compile--first-symbol-with-pos (car form))))
|
||||
sym)
|
||||
(and (symbolp (setq sym (byte-compile--first-symbol (cdr form))))
|
||||
(and (symbolp (setq sym (byte-compile--first-symbol-with-pos (cdr form))))
|
||||
sym)
|
||||
0))
|
||||
((and (vectorp form)
|
||||
|
@ -1193,7 +1193,7 @@ Here, \"first\" is by a depth first search."
|
|||
(catch 'sym
|
||||
(while (< i len)
|
||||
(when (symbolp
|
||||
(setq elt (byte-compile--first-symbol (aref form i))))
|
||||
(setq elt (byte-compile--first-symbol-with-pos (aref form i))))
|
||||
(throw 'sym elt))
|
||||
(setq i (1+ i)))
|
||||
0)))
|
||||
|
@ -1204,7 +1204,7 @@ Here, \"first\" is by a depth first search."
|
|||
Return nil if such is not found."
|
||||
(catch 'offset
|
||||
(dolist (form byte-compile-form-stack)
|
||||
(let ((s (byte-compile--first-symbol form)))
|
||||
(let ((s (byte-compile--first-symbol-with-pos form)))
|
||||
(if (symbol-with-pos-p s)
|
||||
(throw 'offset (symbol-with-pos-pos s)))))))
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue