@@ -16,7 +16,7 @@ use rustc_middle::ty::TyCtxt;
16
16
use rustc_span:: def_id:: { DefId , CRATE_DEF_INDEX } ;
17
17
use rustc_target:: spec:: abi:: Abi ;
18
18
19
- use crate :: clean:: { self , utils:: find_nearest_parent_module, PrimitiveType } ;
19
+ use crate :: clean:: { self , utils:: find_nearest_parent_module, ExternalCrate , PrimitiveType } ;
20
20
use crate :: formats:: item_type:: ItemType ;
21
21
use crate :: html:: escape:: Escape ;
22
22
use crate :: html:: render:: cache:: ExternalLocation ;
@@ -461,14 +461,14 @@ crate fn href(did: DefId, cx: &Context<'_>) -> Option<(String, ItemType, Vec<Str
461
461
fqp,
462
462
shortty,
463
463
match cache. extern_locations [ & did. krate ] {
464
- ( .. , ExternalLocation :: Remote ( ref s) ) => {
464
+ ExternalLocation :: Remote ( ref s) => {
465
465
let s = s. trim_end_matches ( '/' ) ;
466
466
let mut s = vec ! [ & s[ ..] ] ;
467
467
s. extend ( module_fqp[ ..] . iter ( ) . map ( String :: as_str) ) ;
468
468
s
469
469
}
470
- ( .. , ExternalLocation :: Local ) => href_relative_parts ( module_fqp, relative_to) ,
471
- ( .. , ExternalLocation :: Unknown ) => return None ,
470
+ ExternalLocation :: Local => href_relative_parts ( module_fqp, relative_to) ,
471
+ ExternalLocation :: Unknown => return None ,
472
472
} ,
473
473
)
474
474
}
@@ -574,20 +574,22 @@ fn primitive_link(
574
574
Some ( & def_id) => {
575
575
let cname_str;
576
576
let loc = match m. extern_locations [ & def_id. krate ] {
577
- ( ref cname, _, ExternalLocation :: Remote ( ref s) ) => {
578
- cname_str = cname. as_str ( ) ;
577
+ ExternalLocation :: Remote ( ref s) => {
578
+ cname_str =
579
+ ExternalCrate { crate_num : def_id. krate } . name ( cx. tcx ( ) ) . as_str ( ) ;
579
580
Some ( vec ! [ s. trim_end_matches( '/' ) , & cname_str[ ..] ] )
580
581
}
581
- ( ref cname, _, ExternalLocation :: Local ) => {
582
- cname_str = cname. as_str ( ) ;
582
+ ExternalLocation :: Local => {
583
+ cname_str =
584
+ ExternalCrate { crate_num : def_id. krate } . name ( cx. tcx ( ) ) . as_str ( ) ;
583
585
Some ( if cx. current . first ( ) . map ( |x| & x[ ..] ) == Some ( & cname_str[ ..] ) {
584
586
iter:: repeat ( ".." ) . take ( cx. current . len ( ) - 1 ) . collect ( )
585
587
} else {
586
588
let cname = iter:: once ( & cname_str[ ..] ) ;
587
589
iter:: repeat ( ".." ) . take ( cx. current . len ( ) ) . chain ( cname) . collect ( )
588
590
} )
589
591
}
590
- ( .. , ExternalLocation :: Unknown ) => None ,
592
+ ExternalLocation :: Unknown => None ,
591
593
} ;
592
594
if let Some ( loc) = loc {
593
595
write ! (
0 commit comments