diff --git a/lib/binding_rust/lib.rs b/lib/binding_rust/lib.rs index e8d99a87..2e3403b4 100644 --- a/lib/binding_rust/lib.rs +++ b/lib/binding_rust/lib.rs @@ -942,8 +942,9 @@ impl<'tree> Node<'tree> { /// /// Syntax errors represent parts of the code that could not be incorporated into a /// valid syntax tree. + #[doc(alias = "ts_node_is_error")] pub fn is_error(&self) -> bool { - self.kind_id() == u16::MAX + unsafe { ffi::ts_node_is_error(self.0) } } /// Get this node's parse state. diff --git a/lib/src/node.c b/lib/src/node.c index 46028f37..092e96f8 100644 --- a/lib/src/node.c +++ b/lib/src/node.c @@ -473,15 +473,15 @@ bool ts_node_has_error(TSNode self) { return ts_subtree_error_cost(ts_node__subtree(self)) > 0; } -uint32_t ts_node_descendant_count(TSNode self) { - return ts_subtree_visible_descendant_count(ts_node__subtree(self)) + 1; -} - bool ts_node_is_error(TSNode self) { TSSymbol symbol = ts_node_symbol(self); return symbol == ts_builtin_sym_error; } +uint32_t ts_node_descendant_count(TSNode self) { + return ts_subtree_visible_descendant_count(ts_node__subtree(self)) + 1; +} + TSStateId ts_node_parse_state(TSNode self) { return ts_subtree_parse_state(ts_node__subtree(self)); }