@@ -644,7 +644,8 @@ impl<'a> Resolver<'a> {
644
644
let expansion = ExpnId :: root ( ) ; // FIXME(jseyfried) intercrate hygiene
645
645
match res {
646
646
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) => {
648
649
let module = self . new_module ( parent,
649
650
ModuleKind :: Def ( kind, def_id, ident. name ) ,
650
651
def_id,
@@ -657,13 +658,16 @@ impl<'a> Resolver<'a> {
657
658
| Res :: Def ( DefKind :: ForeignTy , _)
658
659
| Res :: Def ( DefKind :: OpaqueTy , _)
659
660
| Res :: Def ( DefKind :: TraitAlias , _)
661
+ | Res :: Def ( DefKind :: AssocTy , _)
662
+ | Res :: Def ( DefKind :: AssocExistential , _)
660
663
| Res :: PrimTy ( ..)
661
664
| Res :: ToolMod => {
662
665
self . define ( parent, ident, TypeNS , ( res, vis, DUMMY_SP , expansion) ) ;
663
666
}
664
667
Res :: Def ( DefKind :: Fn , _)
665
668
| Res :: Def ( DefKind :: Static , _)
666
669
| Res :: Def ( DefKind :: Const , _)
670
+ | Res :: Def ( DefKind :: AssocConst , _)
667
671
| Res :: Def ( DefKind :: Ctor ( CtorOf :: Variant , ..) , _) => {
668
672
self . define ( parent, ident, ValueNS , ( res, vis, DUMMY_SP , expansion) ) ;
669
673
}
@@ -676,28 +680,11 @@ impl<'a> Resolver<'a> {
676
680
self . struct_constructors . insert ( struct_def_id, ( res, vis) ) ;
677
681
}
678
682
}
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) ) ;
687
685
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) ;
701
688
}
702
689
}
703
690
Res :: Def ( DefKind :: Struct , def_id) | Res :: Def ( DefKind :: Union , def_id) => {
0 commit comments