generatedSubtreeHasTrailingEmptyDescendant function

bool generatedSubtreeHasTrailingEmptyDescendant(
  1. GeneratedTreeSitterNode self,
  2. GeneratedTreeSitterNode other
)

Exact managed counterpart of the private node.c helper used to disambiguate zero-width previous siblings.

Implementation

bool generatedSubtreeHasTrailingEmptyDescendant(
  GeneratedTreeSitterNode self,
  GeneratedTreeSitterNode other,
) {
  for (var index = self.children.length - 1; index >= 0; index--) {
    final child = self.children[index];
    if (child.paddingBytes + child.sizeBytes > 0) break;
    if (identical(child, other) ||
        generatedSubtreeHasTrailingEmptyDescendant(child, other)) {
      return true;
    }
  }
  return false;
}