Subject: Re: bug#65810: 30.0.50; C-M-f and related functions error out in c++-ts-mode
From: Yuan Fu <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: João Távora <[email-masked]>, [email-masked]
Date: Thu, 7 Sep 2023 16:12:13 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

> On Sep 7, 2023, at 11:09 AM, Eli Zaretskii <[email-masked]> wrote:
> 
>> From: João Távora <[email-masked]>
>> Cc: [email-masked]
>> Date: Thu, 07 Sep 2023 18:48:07 +0100
>> 
>> Now just type C-M-f or any C-M-something command.
>> 
>>  Debugger entered--Lisp error: (treesit-invalid-predicate nil)
>>    treesit-node-match-p(#<treesit-node "{" in 1-2> sexp t)
>>    #f(compiled-function (node) #<bytecode 0x1a160a6a590699e2>)(#<treesit-node "{" in 1-2>)
>>    treesit-node-match-p(#<treesit-node "{" in 1-2> #f(compiled-function (node) #<bytecode 0x1a160a6a590699e2>) t)
>>    treesit-node-top-level(#<treesit-node "{" in 1-2> #f(compiled-function (node) #<bytecode 0x1a160a6a590699e2>) t)
>>    treesit--things-around(5 sexp)
>>    treesit--navigate-thing(5 -1 beg sexp restricted)
>>    treesit-beginning-of-thing(sexp 1 restricted)
>>    treesit-forward-sexp(-1)
>>    forward-sexp(-1 nil)
>>    forward-sexp(-1 5)
>>    backward-sexp(1 5)
>>    funcall-interactively(backward-sexp 1 5)
>>    call-interactively(backward-sexp nil nil)
>>    command-execute(backward-sexp)
>> 
>> simple.cpp can be any C++ file, from a simple
>> 
>>   int main() {return 0;}
>> 
>> to a completely empty file.
> 
> With the above sample file I can indeed reproduce the error.  But not
> with real-life files I tried, where functions are larger and there's
> usually more than one function.
> 
> Yuan, could you please look into this?

That’s due to some new stuff I added recently. I’ve pushed a fix to master. Sorry for the chaos guys :-(

Yuan