@@ -13,7 +13,7 @@ use rustc_data_structures::fx::{FxHashMap, FxHashSet};
13
13
use rustc_data_structures:: intern:: Interned ;
14
14
use rustc_errors:: { Applicability , Diag , DiagMessage } ;
15
15
use rustc_hir:: def:: Namespace :: * ;
16
- use rustc_hir:: def:: { DefKind , Namespace , PerNS } ;
16
+ use rustc_hir:: def:: { CtorOf , DefKind , Namespace , PerNS } ;
17
17
use rustc_hir:: def_id:: { CRATE_DEF_ID , DefId } ;
18
18
use rustc_hir:: { Mutability , Safety } ;
19
19
use rustc_middle:: ty:: { Ty , TyCtxt } ;
@@ -428,6 +428,14 @@ impl<'a, 'tcx> LinkCollector<'a, 'tcx> {
428
428
) => {
429
429
vec ! [ ( Res :: from_def_id( self . cx. tcx, self . cx. tcx. parent( def_id) ) , Some ( def_id) ) ]
430
430
}
431
+ Res :: Def ( DefKind :: Ctor ( CtorOf :: Variant , _) , def_id) => {
432
+ let def_id = self . cx . tcx . parent ( def_id) ;
433
+ vec ! [ ( Res :: from_def_id( self . cx. tcx, self . cx. tcx. parent( def_id) ) , Some ( def_id) ) ]
434
+ }
435
+ Res :: Def ( DefKind :: Ctor ( CtorOf :: Struct , _) , def_id) => {
436
+ let def_id = self . cx . tcx . parent ( def_id) ;
437
+ vec ! [ ( Res :: from_def_id( self . cx. tcx, def_id) , None ) ]
438
+ }
431
439
_ => vec ! [ ( res, None ) ] ,
432
440
} ) ;
433
441
} else if ns == MacroNS {
0 commit comments