From: Yuan Fu <casouri@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Peter Oliver <p.d.oliver@mavit.org.uk>, 75310@debbugs.gnu.org
Subject: bug#75310: Eliminate obsolete alias warning
Date: Fri, 3 Jan 2025 23:33:25 -0800 [thread overview]
Message-ID: <77CBB14F-094D-48DA-A7D1-ED9E1F43DAD3@gmail.com> (raw)
In-Reply-To: <868qrrhq8h.fsf@gnu.org>
> On Jan 3, 2025, at 7:27 AM, Eli Zaretskii <eliz@gnu.org> wrote:
>
>> Date: Fri, 3 Jan 2025 14:47:53 +0000 (GMT)
>> From: Peter Oliver <p.d.oliver@mavit.org.uk>
>> cc: 75310@debbugs.gnu.org
>>
>> On Fri, 3 Jan 2025, Eli Zaretskii wrote:
>>
>>> IOW, can you show a minimal recipe for reproducing the problem,
>>> starting from "emacs -Q"?
>>
>> $ src/emacs -Q --batch --eval "(progn (message emacs-version) (require 'cl) (require 'treesit))"
>> 31.0.50
>> Package cl is deprecated
>> lisp/treesit.el: Warning: ‘loop’ is an obsolete alias (as of 27.1); use ‘cl-loop’ instead.
>
> Thanks.
>
> Yuan, I think it would be good to rename 'loop' there to some other
> name, do you agree?
I would definitely agree. I’ve always used cl-loop (and now I try to not use it for new code). The only instance of “loop” I can find in treesit.el is in a named-let in treesit-transpose-sexps wriiten by Theo, and it’s not the CL loop but a local function defined by named-let. I wanted to rewrite it so it doesn’t use named-let because it’s not very readable, but tbh I haven’t find the time to understand that function well enough to rewrite it (because it’s not very readable :-)
It could be that only I can’t understand it, but code should be simple enough that even I can understand ;-)
Once I rewrite it, there shouldn't be any occurrence of loop in treesit.el.
treesit-transpose-sexps looks like this:
(defun treesit-transpose-sexps (&optional arg)
"Tree-sitter `transpose-sexps' function.
ARG is the same as in `transpose-sexps'.
Locate the node closest to POINT, and transpose that node with
its sibling node ARG nodes away.
Return a pair of positions as described by
`transpose-sexps-function' for use in `transpose-subr' and
friends."
;; First arrive at the right level at where the node at point is
;; considered a sexp. If sexp isn't defined, or we can't find any
;; node that's a sexp, use the node at point.
(let* ((node (or (treesit-thing-at-point 'sexp 'nested)
(treesit-node-at (point))))
(parent (treesit-node-parent node))
(child (treesit-node-child parent 0 t)))
(named-let loop ((prev child)
(next (treesit-node-next-sibling child t)))
(when (and prev next)
(if (< (point) (treesit-node-end next))
(if (= arg -1)
(cons (treesit-node-start prev)
(treesit-node-end prev))
(when-let* ((n (treesit-node-child
parent (+ arg (treesit-node-index prev t)) t)))
(cons (treesit-node-end n)
(treesit-node-start n))))
(loop (treesit-node-next-sibling prev t)
(treesit-node-next-sibling next t)))))))
Yuan
next prev parent reply other threads:[~2025-01-04 7:33 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-03 11:41 bug#75310: Eliminate obsolete alias warning Peter Oliver
2025-01-03 12:02 ` Eli Zaretskii
2025-01-03 14:11 ` Peter Oliver
2025-01-03 14:17 ` Eli Zaretskii
2025-01-03 14:47 ` Peter Oliver
2025-01-03 15:27 ` Eli Zaretskii
2025-01-04 7:33 ` Yuan Fu [this message]
2025-01-04 8:29 ` Eli Zaretskii
2025-01-04 19:26 ` Yuan Fu
2025-01-04 19:27 ` Yuan Fu
2025-01-04 19:31 ` Yuan Fu
2025-01-04 20:03 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=77CBB14F-094D-48DA-A7D1-ED9E1F43DAD3@gmail.com \
--to=casouri@gmail.com \
--cc=75310@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=p.d.oliver@mavit.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.