@@ -94,9 +94,12 @@ pub trait NodeExt: Sized {
94
94
fn children_of ( node : Self ) -> impl Iterator < Item = Self > ;
95
95
fn next_siblings ( & self ) -> impl Iterator < Item = Self > ;
96
96
fn arguments ( & self ) -> impl Iterator < Item = ( Option < Self > , Option < Self > ) > ;
97
- fn arguments_values ( & self ) -> impl Iterator < Item = Self > ;
98
- fn arguments_names ( & self ) -> impl Iterator < Item = Self > ;
99
- fn arguments_names_as_string ( & self , contents : & ropey:: Rope ) -> impl Iterator < Item = String > ;
97
+ fn arguments_values ( & self ) -> impl Iterator < Item = Option < Self > > ;
98
+ fn arguments_names ( & self ) -> impl Iterator < Item = Option < Self > > ;
99
+ fn arguments_names_as_string (
100
+ & self ,
101
+ contents : & ropey:: Rope ,
102
+ ) -> impl Iterator < Item = Option < String > > ;
100
103
}
101
104
102
105
impl < ' tree > NodeExt for Node < ' tree > {
@@ -277,24 +280,27 @@ impl<'tree> NodeExt for Node<'tree> {
277
280
} )
278
281
}
279
282
280
- fn arguments_names ( & self ) -> impl Iterator < Item = Node < ' tree > > {
281
- self . arguments ( ) . filter_map ( |( name, _value) | name)
283
+ fn arguments_names ( & self ) -> impl Iterator < Item = Option < Node < ' tree > > > {
284
+ self . arguments ( ) . map ( |( name, _value) | name)
282
285
}
283
286
284
- fn arguments_names_as_string ( & self , contents : & ropey:: Rope ) -> impl Iterator < Item = String > {
285
- self . arguments_names ( ) . filter_map ( |node| -> Option < String > {
286
- match contents. node_slice ( & node) {
287
+ fn arguments_names_as_string (
288
+ & self ,
289
+ contents : & ropey:: Rope ,
290
+ ) -> impl Iterator < Item = Option < String > > {
291
+ self . arguments_names ( ) . map ( |maybe_node| {
292
+ maybe_node. and_then ( |node| match contents. node_slice ( & node) {
287
293
Err ( err) => {
288
294
tracing:: error!( "Can't convert argument name to text: {err:?}" ) ;
289
295
None
290
296
} ,
291
297
Ok ( text) => Some ( text. to_string ( ) ) ,
292
- }
298
+ } )
293
299
} )
294
300
}
295
301
296
- fn arguments_values ( & self ) -> impl Iterator < Item = Node < ' tree > > {
297
- self . arguments ( ) . filter_map ( |( _name, value) | value)
302
+ fn arguments_values ( & self ) -> impl Iterator < Item = Option < Node < ' tree > > > {
303
+ self . arguments ( ) . map ( |( _name, value) | value)
298
304
}
299
305
}
300
306
0 commit comments