@@ -490,14 +490,23 @@ pub fn node_item_query<Result>(items: map, id: NodeId, query: |@item| -> Result,
490
490
}
491
491
}
492
492
493
- pub fn item_span ( items : map ,
493
+ pub fn node_span ( items : map ,
494
494
id : ast:: NodeId )
495
495
-> Span {
496
496
match items. find ( & id) {
497
497
Some ( & node_item( item, _) ) => item. span ,
498
- r => {
499
- fail ! ( format!( "item_span: expected item with id {} but found {:?}" ,
500
- id, r) )
501
- }
498
+ Some ( & node_foreign_item( foreign_item, _, _, _) ) => foreign_item. span ,
499
+ Some ( & node_trait_method( @required( ref type_method) , _, _) ) => type_method. span ,
500
+ Some ( & node_trait_method( @provided( ref method) , _, _) ) => method. span ,
501
+ Some ( & node_method( method, _, _) ) => method. span ,
502
+ Some ( & node_variant( variant, _, _) ) => variant. span ,
503
+ Some ( & node_expr( expr) ) => expr. span ,
504
+ Some ( & node_stmt( stmt) ) => stmt. span ,
505
+ Some ( & node_arg( pat) ) => pat. span ,
506
+ Some ( & node_local( _) ) => fail ! ( "node_span: cannot get span from node_local" ) ,
507
+ Some ( & node_block( block) ) => block. span ,
508
+ Some ( & node_struct_ctor( _, item, _) ) => item. span ,
509
+ Some ( & node_callee_scope( expr) ) => expr. span ,
510
+ None => fail ! ( "node_span: could not find id {}" , id) ,
502
511
}
503
512
}
0 commit comments