@@ -39,31 +39,21 @@ pub(crate) fn goto_definition(
3939 kind if kind. is_trivia ( ) => 0 ,
4040 _ => 1 ,
4141 } ) ?;
42- let tokens = sema. descend_into_macros_many ( original_token. clone ( ) ) ;
43- let navs = tokens
44- . clone ( )
45- . into_iter ( )
46- . filter_map ( |token| {
47- let parent = token. parent ( ) ?;
48- if let Some ( _) = ast:: Comment :: cast ( token. clone ( ) ) {
49- let ( attributes, def) = doc_attributes ( & sema, & parent) ?;
50- let ( docs, doc_mapping) = attributes. docs_with_rangemap ( db) ?;
51- let ( _, link, ns) =
52- extract_definitions_from_docs ( & docs) . into_iter ( ) . find ( |& ( range, ..) | {
53- doc_mapping. map ( range) . map_or ( false , |InFile { file_id, value : range } | {
54- file_id == position. file_id . into ( ) && range. contains ( position. offset )
55- } )
56- } ) ?;
57- let nav = resolve_doc_path_for_def ( db, def, & link, ns) ?. try_to_nav ( db) ?;
58- return Some ( nav) ;
59- }
60- None
61- } )
62- . collect :: < Vec < NavigationTarget > > ( ) ;
63- if navs. len ( ) > 0 {
64- return Some ( RangeInfo :: new ( original_token. text_range ( ) , navs) ) ;
65- }
66- let navs = tokens
42+ if let Some ( _) = ast:: Comment :: cast ( original_token. clone ( ) ) {
43+ let parent = original_token. parent ( ) ?;
44+ let ( attributes, def) = doc_attributes ( & sema, & parent) ?;
45+ let ( docs, doc_mapping) = attributes. docs_with_rangemap ( db) ?;
46+ let ( _, link, ns) =
47+ extract_definitions_from_docs ( & docs) . into_iter ( ) . find ( |& ( range, ..) | {
48+ doc_mapping. map ( range) . map_or ( false , |InFile { file_id, value : range } | {
49+ file_id == position. file_id . into ( ) && range. contains ( position. offset )
50+ } )
51+ } ) ?;
52+ let nav = resolve_doc_path_for_def ( db, def, & link, ns) ?. try_to_nav ( db) ?;
53+ return Some ( RangeInfo :: new ( original_token. text_range ( ) , vec ! [ nav] ) ) ;
54+ }
55+
56+ let navs = sema. descend_into_macros_many ( original_token. clone ( ) )
6757 . into_iter ( )
6858 . filter_map ( |token| {
6959 let parent = token. parent ( ) ?;
0 commit comments