@@ -644,7 +644,8 @@ impl<'a> Resolver<'a> {
644644 let expansion = ExpnId :: root ( ) ; // FIXME(jseyfried) intercrate hygiene
645645 match res {
646646 Res :: Def ( kind @ DefKind :: Mod , def_id)
647- | Res :: Def ( kind @ DefKind :: Enum , def_id) => {
647+ | Res :: Def ( kind @ DefKind :: Enum , def_id)
648+ | Res :: Def ( kind @ DefKind :: Trait , def_id) => {
648649 let module = self . new_module ( parent,
649650 ModuleKind :: Def ( kind, def_id, ident. name ) ,
650651 def_id,
@@ -657,13 +658,16 @@ impl<'a> Resolver<'a> {
657658 | Res :: Def ( DefKind :: ForeignTy , _)
658659 | Res :: Def ( DefKind :: OpaqueTy , _)
659660 | Res :: Def ( DefKind :: TraitAlias , _)
661+ | Res :: Def ( DefKind :: AssocTy , _)
662+ | Res :: Def ( DefKind :: AssocExistential , _)
660663 | Res :: PrimTy ( ..)
661664 | Res :: ToolMod => {
662665 self . define ( parent, ident, TypeNS , ( res, vis, DUMMY_SP , expansion) ) ;
663666 }
664667 Res :: Def ( DefKind :: Fn , _)
665668 | Res :: Def ( DefKind :: Static , _)
666669 | Res :: Def ( DefKind :: Const , _)
670+ | Res :: Def ( DefKind :: AssocConst , _)
667671 | Res :: Def ( DefKind :: Ctor ( CtorOf :: Variant , ..) , _) => {
668672 self . define ( parent, ident, ValueNS , ( res, vis, DUMMY_SP , expansion) ) ;
669673 }
@@ -676,28 +680,11 @@ impl<'a> Resolver<'a> {
676680 self . struct_constructors . insert ( struct_def_id, ( res, vis) ) ;
677681 }
678682 }
679- Res :: Def ( DefKind :: Trait , def_id) => {
680- let module_kind = ModuleKind :: Def ( DefKind :: Trait , def_id, ident. name ) ;
681- let module = self . new_module ( parent,
682- module_kind,
683- parent. normal_ancestor_id ,
684- expansion,
685- span) ;
686- self . define ( parent, ident, TypeNS , ( module, vis, DUMMY_SP , expansion) ) ;
683+ Res :: Def ( DefKind :: Method , def_id) => {
684+ self . define ( parent, ident, ValueNS , ( res, vis, DUMMY_SP , expansion) ) ;
687685
688- module. populate_on_access . set ( false ) ;
689- for child in self . cstore . item_children_untracked ( def_id, self . session ) {
690- let res = child. res . map_id ( |_| panic ! ( "unexpected id" ) ) ;
691- let ns = if let Res :: Def ( DefKind :: AssocTy , _) = res {
692- TypeNS
693- } else { ValueNS } ;
694- self . define ( module, child. ident , ns,
695- ( res, ty:: Visibility :: Public , DUMMY_SP , expansion) ) ;
696-
697- if self . cstore . associated_item_cloned_untracked ( child. res . def_id ( ) )
698- . method_has_self_argument {
699- self . has_self . insert ( res. def_id ( ) ) ;
700- }
686+ if self . cstore . associated_item_cloned_untracked ( def_id) . method_has_self_argument {
687+ self . has_self . insert ( def_id) ;
701688 }
702689 }
703690 Res :: Def ( DefKind :: Struct , def_id) | Res :: Def ( DefKind :: Union , def_id) => {
0 commit comments