GNU bug report logs - #77744
31.0.50; Inconsistent error signal in up-list-default-function and treesit-up-list

Previous Next

Package: emacs;

Reported by: Roman Rudakov <rrudakov <at> fastmail.com>

Date: Fri, 11 Apr 2025 14:28:02 UTC

Severity: normal

Fixed in version 31.0.50

Done: Juri Linkov <juri <at> linkov.net>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Juri Linkov <juri <at> linkov.net>
To: Roman Rudakov <rrudakov <at> fastmail.com>
Cc: Stefan Monnier <monnier <at> iro.umontreal.ca>, 77744 <at> debbugs.gnu.org
Subject: bug#77744: 31.0.50; Inconsistent error signal in up-list-default-function and treesit-up-list
Date: Mon, 14 Apr 2025 21:05:36 +0300
>> This is because 'up-list-default-function' signals both:
>>
>>   (if no-syntax-crossing
>>       ;; Assume called interactively; don't signal an error.
>>       (user-error "At top level")
>>     (signal (car err) (cdr err)))
> Yes, I forgot to mention it in the initial report. 'scan-error' is signaled
> by 'up-list-default-function' when it's called non-interactively, but
> 'treesit-up-list' signals 'user-error' in this case.

Thanks for the bug report.  I will push this patch tomorrow
since currently the repo is down:

diff --git a/lisp/treesit.el b/lisp/treesit.el
index ae0ef56c65a..3cf3be5122c 100644
--- a/lisp/treesit.el
+++ b/lisp/treesit.el
@@ -3193,7 +3183,12 @@ treesit-up-list
               (goto-char (if (> arg 0)
                              (treesit-node-end parent)
                            (treesit-node-start parent))))
-            (user-error "At top level")))
+            (if no-syntax-crossing
+                ;; Assume called interactively; don't signal an error.
+                (user-error "At top level")
+              (signal 'scan-error
+                      (list (format-message "No more %S to move across" pred)
+                            (point) (point))))))
       (setq cnt (- cnt inc)))))
 
 (defun treesit-cycle-sexp-type ()




This bug report was last modified 115 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.