Allow passing nil to treesit-node-match-p (bug#74612)
authorYuan Fu <casouri@gmail.com>
Sat, 30 Nov 2024 00:33:28 +0000 (16:33 -0800)
committerYuan Fu <casouri@gmail.com>
Sun, 1 Dec 2024 19:35:06 +0000 (11:35 -0800)
* src/treesit.c (Ftreesit_node_match_p): Return nil if NODE is nil.

src/treesit.c

index 4031d80f7c93c6fc6ff2731f22ef923910e6bff5..cda6d4af2ee486ea1f4267152737d4c725ba13af 100644 (file)
@@ -4017,7 +4017,8 @@ PREDICATE can be a symbol representing a thing in
 `treesit-thing-settings', or a predicate, like regexp matching node
 type, etc.  See `treesit-thing-settings' for more details.
 
-Return non-nil if NODE matches PREDICATE, nil otherwise.
+Return non-nil if NODE matches PREDICATE, nil otherwise.  If NODE is
+nil, return nil.
 
 Signals `treesit-invalid-predicate' if there's no definition of THING
 in `treesit-thing-settings', or if PREDICATE is malformed.  If
@@ -4025,6 +4026,8 @@ IGNORE-MISSING is non-nil, don't signal an error for missing THING
 definition, but still signal for malformed PREDICATE.  */)
   (Lisp_Object node, Lisp_Object predicate, Lisp_Object ignore_missing)
 {
+  if (NILP (node)) return Qnil;
+
   CHECK_TS_NODE (node);
 
   Lisp_Object parser = XTS_NODE (node)->parser;