@@ -26,7 +26,7 @@ use rustc_errors::{struct_span_err, Applicability};
26
26
use rustc_expand:: base:: SyntaxExtension ;
27
27
use rustc_expand:: expand:: AstFragment ;
28
28
use rustc_hir:: def:: { self , * } ;
29
- use rustc_hir:: def_id:: { DefId , CRATE_DEF_INDEX , LOCAL_CRATE } ;
29
+ use rustc_hir:: def_id:: { DefId , CRATE_DEF_INDEX } ;
30
30
use rustc_metadata:: creader:: LoadedMacro ;
31
31
use rustc_middle:: bug;
32
32
use rustc_middle:: hir:: exports:: Export ;
@@ -96,7 +96,7 @@ impl<'a> Resolver<'a> {
96
96
}
97
97
98
98
crate fn get_module ( & mut self , def_id : DefId ) -> Module < ' a > {
99
- if def_id. krate == LOCAL_CRATE {
99
+ if let Some ( def_id) = def_id . as_local ( ) {
100
100
return self . module_map [ & def_id] ;
101
101
}
102
102
@@ -675,12 +675,18 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
675
675
676
676
ItemKind :: Mod ( ..) => {
677
677
let def_id = self . r . definitions . local_def_id ( item. id ) ;
678
- let module_kind = ModuleKind :: Def ( DefKind :: Mod , def_id, ident. name ) ;
678
+ let module_kind = ModuleKind :: Def ( DefKind :: Mod , def_id. to_def_id ( ) , ident. name ) ;
679
679
let module = self . r . arenas . alloc_module ( ModuleData {
680
680
no_implicit_prelude : parent. no_implicit_prelude || {
681
681
attr:: contains_name ( & item. attrs , sym:: no_implicit_prelude)
682
682
} ,
683
- ..ModuleData :: new ( Some ( parent) , module_kind, def_id, expansion, item. span )
683
+ ..ModuleData :: new (
684
+ Some ( parent) ,
685
+ module_kind,
686
+ def_id. to_def_id ( ) ,
687
+ expansion,
688
+ item. span ,
689
+ )
684
690
} ) ;
685
691
self . r . define ( parent, ident, TypeNS , ( module, vis, sp, expansion) ) ;
686
692
self . r . module_map . insert ( def_id, module) ;
@@ -691,15 +697,18 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
691
697
692
698
// These items live in the value namespace.
693
699
ItemKind :: Static ( ..) => {
694
- let res = Res :: Def ( DefKind :: Static , self . r . definitions . local_def_id ( item. id ) ) ;
700
+ let res =
701
+ Res :: Def ( DefKind :: Static , self . r . definitions . local_def_id ( item. id ) . to_def_id ( ) ) ;
695
702
self . r . define ( parent, ident, ValueNS , ( res, vis, sp, expansion) ) ;
696
703
}
697
704
ItemKind :: Const ( ..) => {
698
- let res = Res :: Def ( DefKind :: Const , self . r . definitions . local_def_id ( item. id ) ) ;
705
+ let res =
706
+ Res :: Def ( DefKind :: Const , self . r . definitions . local_def_id ( item. id ) . to_def_id ( ) ) ;
699
707
self . r . define ( parent, ident, ValueNS , ( res, vis, sp, expansion) ) ;
700
708
}
701
709
ItemKind :: Fn ( ..) => {
702
- let res = Res :: Def ( DefKind :: Fn , self . r . definitions . local_def_id ( item. id ) ) ;
710
+ let res =
711
+ Res :: Def ( DefKind :: Fn , self . r . definitions . local_def_id ( item. id ) . to_def_id ( ) ) ;
703
712
self . r . define ( parent, ident, ValueNS , ( res, vis, sp, expansion) ) ;
704
713
705
714
// Functions introducing procedural macros reserve a slot
@@ -713,12 +722,12 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
713
722
None => DefKind :: TyAlias ,
714
723
Some ( _) => DefKind :: OpaqueTy ,
715
724
} ;
716
- let res = Res :: Def ( def_kind, self . r . definitions . local_def_id ( item. id ) ) ;
725
+ let res = Res :: Def ( def_kind, self . r . definitions . local_def_id ( item. id ) . to_def_id ( ) ) ;
717
726
self . r . define ( parent, ident, TypeNS , ( res, vis, sp, expansion) ) ;
718
727
}
719
728
720
729
ItemKind :: Enum ( _, _) => {
721
- let def_id = self . r . definitions . local_def_id ( item. id ) ;
730
+ let def_id = self . r . definitions . local_def_id ( item. id ) . to_def_id ( ) ;
722
731
self . r . variant_vis . insert ( def_id, vis) ;
723
732
let module_kind = ModuleKind :: Def ( DefKind :: Enum , def_id, ident. name ) ;
724
733
let module = self . r . new_module (
@@ -733,14 +742,17 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
733
742
}
734
743
735
744
ItemKind :: TraitAlias ( ..) => {
736
- let res = Res :: Def ( DefKind :: TraitAlias , self . r . definitions . local_def_id ( item. id ) ) ;
745
+ let res = Res :: Def (
746
+ DefKind :: TraitAlias ,
747
+ self . r . definitions . local_def_id ( item. id ) . to_def_id ( ) ,
748
+ ) ;
737
749
self . r . define ( parent, ident, TypeNS , ( res, vis, sp, expansion) ) ;
738
750
}
739
751
740
752
// These items live in both the type and value namespaces.
741
753
ItemKind :: Struct ( ref vdata, _) => {
742
754
// Define a name in the type namespace.
743
- let def_id = self . r . definitions . local_def_id ( item. id ) ;
755
+ let def_id = self . r . definitions . local_def_id ( item. id ) . to_def_id ( ) ;
744
756
let res = Res :: Def ( DefKind :: Struct , def_id) ;
745
757
self . r . define ( parent, ident, TypeNS , ( res, vis, sp, expansion) ) ;
746
758
@@ -773,15 +785,15 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
773
785
}
774
786
let ctor_res = Res :: Def (
775
787
DefKind :: Ctor ( CtorOf :: Struct , CtorKind :: from_ast ( vdata) ) ,
776
- self . r . definitions . local_def_id ( ctor_node_id) ,
788
+ self . r . definitions . local_def_id ( ctor_node_id) . to_def_id ( ) ,
777
789
) ;
778
790
self . r . define ( parent, ident, ValueNS , ( ctor_res, ctor_vis, sp, expansion) ) ;
779
791
self . r . struct_constructors . insert ( def_id, ( ctor_res, ctor_vis) ) ;
780
792
}
781
793
}
782
794
783
795
ItemKind :: Union ( ref vdata, _) => {
784
- let def_id = self . r . definitions . local_def_id ( item. id ) ;
796
+ let def_id = self . r . definitions . local_def_id ( item. id ) . to_def_id ( ) ;
785
797
let res = Res :: Def ( DefKind :: Union , def_id) ;
786
798
self . r . define ( parent, ident, TypeNS , ( res, vis, sp, expansion) ) ;
787
799
@@ -790,7 +802,7 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
790
802
}
791
803
792
804
ItemKind :: Trait ( ..) => {
793
- let def_id = self . r . definitions . local_def_id ( item. id ) ;
805
+ let def_id = self . r . definitions . local_def_id ( item. id ) . to_def_id ( ) ;
794
806
795
807
// Add all the items within to a new module.
796
808
let module_kind = ModuleKind :: Def ( DefKind :: Trait , def_id, ident. name ) ;
@@ -815,15 +827,18 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
815
827
/// Constructs the reduced graph for one foreign item.
816
828
fn build_reduced_graph_for_foreign_item ( & mut self , item : & ForeignItem ) {
817
829
let ( res, ns) = match item. kind {
818
- ForeignItemKind :: Fn ( ..) => {
819
- ( Res :: Def ( DefKind :: Fn , self . r . definitions . local_def_id ( item. id ) ) , ValueNS )
820
- }
821
- ForeignItemKind :: Static ( ..) => {
822
- ( Res :: Def ( DefKind :: Static , self . r . definitions . local_def_id ( item. id ) ) , ValueNS )
823
- }
824
- ForeignItemKind :: TyAlias ( ..) => {
825
- ( Res :: Def ( DefKind :: ForeignTy , self . r . definitions . local_def_id ( item. id ) ) , TypeNS )
826
- }
830
+ ForeignItemKind :: Fn ( ..) => (
831
+ Res :: Def ( DefKind :: Fn , self . r . definitions . local_def_id ( item. id ) . to_def_id ( ) ) ,
832
+ ValueNS ,
833
+ ) ,
834
+ ForeignItemKind :: Static ( ..) => (
835
+ Res :: Def ( DefKind :: Static , self . r . definitions . local_def_id ( item. id ) . to_def_id ( ) ) ,
836
+ ValueNS ,
837
+ ) ,
838
+ ForeignItemKind :: TyAlias ( ..) => (
839
+ Res :: Def ( DefKind :: ForeignTy , self . r . definitions . local_def_id ( item. id ) . to_def_id ( ) ) ,
840
+ TypeNS ,
841
+ ) ,
827
842
ForeignItemKind :: MacCall ( _) => unreachable ! ( ) ,
828
843
} ;
829
844
let parent = self . parent_scope . module ;
@@ -1121,7 +1136,7 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
1121
1136
_ => unreachable ! ( ) ,
1122
1137
} ;
1123
1138
1124
- let def_id = self . r . definitions . local_def_id ( item. id ) ;
1139
+ let def_id = self . r . definitions . local_def_id ( item. id ) . to_def_id ( ) ;
1125
1140
let res = Res :: Def ( DefKind :: Macro ( ext. macro_kind ( ) ) , def_id) ;
1126
1141
self . r . macro_map . insert ( def_id, ext) ;
1127
1142
self . r . local_macro_def_scopes . insert ( item. id , parent_scope. module ) ;
@@ -1251,7 +1266,7 @@ impl<'a, 'b> Visitor<'b> for BuildReducedGraphVisitor<'a, 'b> {
1251
1266
}
1252
1267
1253
1268
// Add the item to the trait info.
1254
- let item_def_id = self . r . definitions . local_def_id ( item. id ) ;
1269
+ let item_def_id = self . r . definitions . local_def_id ( item. id ) . to_def_id ( ) ;
1255
1270
let ( res, ns) = match item. kind {
1256
1271
AssocItemKind :: Const ( ..) => ( Res :: Def ( DefKind :: AssocConst , item_def_id) , ValueNS ) ,
1257
1272
AssocItemKind :: Fn ( _, ref sig, _, _) => {
@@ -1353,7 +1368,7 @@ impl<'a, 'b> Visitor<'b> for BuildReducedGraphVisitor<'a, 'b> {
1353
1368
let ident = variant. ident ;
1354
1369
1355
1370
// Define a name in the type namespace.
1356
- let def_id = self . r . definitions . local_def_id ( variant. id ) ;
1371
+ let def_id = self . r . definitions . local_def_id ( variant. id ) . to_def_id ( ) ;
1357
1372
let res = Res :: Def ( DefKind :: Variant , def_id) ;
1358
1373
self . r . define ( parent, ident, TypeNS , ( res, vis, variant. span , expn_id) ) ;
1359
1374
@@ -1371,7 +1386,7 @@ impl<'a, 'b> Visitor<'b> for BuildReducedGraphVisitor<'a, 'b> {
1371
1386
// It's ok to use the variant's id as a ctor id since an
1372
1387
// error will be reported on any use of such resolution anyway.
1373
1388
let ctor_node_id = variant. data . ctor_id ( ) . unwrap_or ( variant. id ) ;
1374
- let ctor_def_id = self . r . definitions . local_def_id ( ctor_node_id) ;
1389
+ let ctor_def_id = self . r . definitions . local_def_id ( ctor_node_id) . to_def_id ( ) ;
1375
1390
let ctor_kind = CtorKind :: from_ast ( & variant. data ) ;
1376
1391
let ctor_res = Res :: Def ( DefKind :: Ctor ( CtorOf :: Variant , ctor_kind) , ctor_def_id) ;
1377
1392
self . r . define ( parent, ident, ValueNS , ( ctor_res, ctor_vis, variant. span , expn_id) ) ;
0 commit comments