@@ -13,7 +13,7 @@ use rustc_data_structures::fx::{FxHashMap, FxHashSet};
1313use rustc_data_structures:: intern:: Interned ;
1414use rustc_errors:: { Applicability , Diag , DiagMessage } ;
1515use rustc_hir:: def:: Namespace :: * ;
16- use rustc_hir:: def:: { DefKind , Namespace , PerNS } ;
16+ use rustc_hir:: def:: { CtorOf , DefKind , Namespace , PerNS } ;
1717use rustc_hir:: def_id:: { CRATE_DEF_ID , DefId } ;
1818use rustc_hir:: { Mutability , Safety } ;
1919use rustc_middle:: ty:: { Ty , TyCtxt } ;
@@ -428,6 +428,14 @@ impl<'a, 'tcx> LinkCollector<'a, 'tcx> {
428428 ) => {
429429 vec ! [ ( Res :: from_def_id( self . cx. tcx, self . cx. tcx. parent( def_id) ) , Some ( def_id) ) ]
430430 }
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+ }
431439 _ => vec ! [ ( res, None ) ] ,
432440 } ) ;
433441 } else if ns == MacroNS {
0 commit comments