2
2
3
3
use std:: iter:: once;
4
4
5
+ use hir_def:: { db:: DefDatabase , resolver:: Resolver } ;
5
6
use itertools:: Itertools ;
7
+ use syntax:: ast:: Path ;
6
8
use url:: Url ;
7
9
8
10
use crate :: { db:: HirDatabase , Adt , AsName , Crate , Hygiene , ItemInNs , ModPath , ModuleDef } ;
9
- use hir_def:: { db:: DefDatabase , resolver:: Resolver } ;
10
- use syntax:: ast:: Path ;
11
11
12
12
pub fn resolve_doc_link < T : Resolvable + Clone , D : DefDatabase + HirDatabase > (
13
13
db : & D ,
@@ -16,12 +16,9 @@ pub fn resolve_doc_link<T: Resolvable + Clone, D: DefDatabase + HirDatabase>(
16
16
link_target : & str ,
17
17
) -> Option < ( String , String ) > {
18
18
try_resolve_intra ( db, definition, link_text, & link_target) . or_else ( || {
19
- if let Some ( definition) = definition. clone ( ) . try_into_module_def ( ) {
20
- try_resolve_path ( db, & definition, & link_target)
21
- . map ( |target| ( target, link_text. to_string ( ) ) )
22
- } else {
23
- None
24
- }
19
+ let definition = definition. clone ( ) . try_into_module_def ( ) ?;
20
+ try_resolve_path ( db, & definition, & link_target)
21
+ . map ( |target| ( target, link_text. to_string ( ) ) )
25
22
} )
26
23
}
27
24
@@ -57,7 +54,7 @@ fn try_resolve_intra<T: Resolvable, D: DefDatabase + HirDatabase>(
57
54
Some ( ns @ Namespace :: Types ) => ( resolved. types ?. 0 , ns) ,
58
55
Some ( ns @ Namespace :: Values ) => ( resolved. values ?. 0 , ns) ,
59
56
// FIXME:
60
- Some ( Namespace :: Macros ) => None ? ,
57
+ Some ( Namespace :: Macros ) => return None ,
61
58
} ;
62
59
63
60
// Get the filepath of the final symbol
0 commit comments