@@ -246,6 +246,7 @@ pub struct TextObjectQuery {
247pub enum CapturedNode<'a> {
247pub enum CapturedNode<'a> {
248 Single(Node<'a>),
248 Single(Node<'a>),
249+ /// Guarenteed to be not empty
249 Grouped(Vec<Node<'a>>),
250 Grouped(Vec<Node<'a>>),
@@ -318,7 +319,12 @@ impl TextObjectQuery {
319 let iter: Box<dyn Iterator<Item = CapturedNode>> = match quantifier {
320 let iter: Box<dyn Iterator<Item = CapturedNode>> = match quantifier {
320 CaptureQuantifier::OneOrMore | CaptureQuantifier::ZeroOrMore => {
321 CaptureQuantifier::OneOrMore | CaptureQuantifier::ZeroOrMore => {
322+ let nodes: Vec<Node> = nodes.collect();
323+ if nodes.is_empty() {
324+ Box::new(std::iter::empty())
321− Box::new(std::iter::once(CapturedNode::Grouped(nodes.collect())))
326+ Box::new(std::iter::once(CapturedNode::Grouped(nodes)))
323 _ => Box::new(nodes.map(CapturedNode::Single)),
329 _ => Box::new(nodes.map(CapturedNode::Single)),