File tree Expand file tree Collapse file tree 1 file changed +7
-7
lines changed Expand file tree Collapse file tree 1 file changed +7
-7
lines changed Original file line number Diff line number Diff line change @@ -710,14 +710,14 @@ fn ascend_call_token(
710
710
expansion : & ExpansionInfo ,
711
711
token : InFile < SyntaxToken > ,
712
712
) -> Option < InFile < SyntaxToken > > {
713
- let ( mapped , origin ) = expansion. map_token_up ( db, token. as_ref ( ) ) ?;
714
- if origin != Origin :: Call {
715
- return None ;
716
- }
717
- if let Some ( info ) = mapped . file_id . expansion_info ( db ) {
718
- return ascend_call_token ( db , & info , mapped ) ;
713
+ let mut mapping = expansion. map_token_up ( db, token. as_ref ( ) ) ?;
714
+ while let ( mapped , Origin :: Call ) = mapping {
715
+ match mapped . file_id . expansion_info ( db ) {
716
+ Some ( info ) => mapping = info . map_token_up ( db , mapped . as_ref ( ) ) ? ,
717
+ None => return Some ( mapped ) ,
718
+ }
719
719
}
720
- Some ( mapped )
720
+ None
721
721
}
722
722
723
723
impl InFile < SyntaxToken > {
You can’t perform that action at this time.
0 commit comments