diff options
Diffstat (limited to 'src/tree_sitter/node.c')
-rw-r--r-- | src/tree_sitter/node.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/tree_sitter/node.c b/src/tree_sitter/node.c index 6b2be36ee5..b03e2fc979 100644 --- a/src/tree_sitter/node.c +++ b/src/tree_sitter/node.c @@ -415,13 +415,15 @@ TSPoint ts_node_end_point(TSNode self) { } TSSymbol ts_node_symbol(TSNode self) { - return ts_node__alias(&self) - ? ts_node__alias(&self) - : ts_subtree_symbol(ts_node__subtree(self)); + TSSymbol symbol = ts_node__alias(&self); + if (!symbol) symbol = ts_subtree_symbol(ts_node__subtree(self)); + return ts_language_public_symbol(self.tree->language, symbol); } const char *ts_node_type(TSNode self) { - return ts_language_symbol_name(self.tree->language, ts_node_symbol(self)); + TSSymbol symbol = ts_node__alias(&self); + if (!symbol) symbol = ts_subtree_symbol(ts_node__subtree(self)); + return ts_language_symbol_name(self.tree->language, symbol); } char *ts_node_string(TSNode self) { |