diff --git a/lib/binding/lib.rs b/lib/binding/lib.rs index 1c7a6caf..3703e299 100644 --- a/lib/binding/lib.rs +++ b/lib/binding/lib.rs @@ -469,10 +469,11 @@ impl<'tree> Node<'tree> { unsafe { ffi::ts_node_child_count(self.0) as usize } } - pub fn children<'a>(&'a self) -> impl Iterator> + 'a { + pub fn children(&self) -> impl Iterator> { + let me = self.clone(); (0..self.child_count()) .into_iter() - .map(move |i| self.child(i).unwrap()) + .map(move |i| me.child(i).unwrap()) } pub fn named_child<'a>(&'a self, i: usize) -> Option {