@@ -644,6 +644,7 @@ impl EntryKind {
644
644
EntryKind :: TraitAlias => DefKind :: TraitAlias ,
645
645
EntryKind :: Enum ( ..) => DefKind :: Enum ,
646
646
EntryKind :: MacroDef ( _) => DefKind :: Macro ( MacroKind :: Bang ) ,
647
+ EntryKind :: ProcMacro ( kind) => DefKind :: Macro ( kind) ,
647
648
EntryKind :: ForeignType => DefKind :: ForeignTy ,
648
649
EntryKind :: Impl ( _) => DefKind :: Impl ,
649
650
EntryKind :: Closure => DefKind :: Closure ,
@@ -685,20 +686,11 @@ impl CrateRoot<'_> {
685
686
}
686
687
687
688
impl < ' a , ' tcx > CrateMetadataRef < ' a > {
688
- fn is_proc_macro ( & self , id : DefIndex ) -> bool {
689
- self . root
690
- . proc_macro_data
691
- . as_ref ( )
692
- . and_then ( |data| data. macros . decode ( self ) . find ( |x| * x == id) )
693
- . is_some ( )
694
- }
695
-
696
689
fn maybe_kind ( & self , item_id : DefIndex ) -> Option < EntryKind > {
697
690
self . root . tables . kind . get ( self , item_id) . map ( |k| k. decode ( self ) )
698
691
}
699
692
700
693
fn kind ( & self , item_id : DefIndex ) -> EntryKind {
701
- assert ! ( !self . is_proc_macro( item_id) ) ;
702
694
self . maybe_kind ( item_id) . unwrap_or_else ( || {
703
695
bug ! (
704
696
"CrateMetadata::kind({:?}): id not found, in crate {:?} with number {}" ,
@@ -725,35 +717,24 @@ impl<'a, 'tcx> CrateMetadataRef<'a> {
725
717
}
726
718
727
719
fn item_ident ( & self , item_index : DefIndex , sess : & Session ) -> Ident {
728
- if !self . is_proc_macro ( item_index) {
729
- let name = self
730
- . def_key ( item_index)
731
- . disambiguated_data
732
- . data
733
- . get_opt_name ( )
734
- . expect ( "no name in item_ident" ) ;
735
- let span = self
736
- . root
737
- . tables
738
- . ident_span
739
- . get ( self , item_index)
740
- . map ( |data| data. decode ( ( self , sess) ) )
741
- . unwrap_or_else ( || panic ! ( "Missing ident span for {:?} ({:?})" , name, item_index) ) ;
742
- Ident :: new ( name, span)
743
- } else {
744
- Ident :: new (
745
- Symbol :: intern ( self . raw_proc_macro ( item_index) . name ( ) ) ,
746
- self . get_span ( item_index, sess) ,
747
- )
748
- }
720
+ let name = self
721
+ . def_key ( item_index)
722
+ . disambiguated_data
723
+ . data
724
+ . get_opt_name ( )
725
+ . expect ( "no name in item_ident" ) ;
726
+ let span = self
727
+ . root
728
+ . tables
729
+ . ident_span
730
+ . get ( self , item_index)
731
+ . map ( |data| data. decode ( ( self , sess) ) )
732
+ . unwrap_or_else ( || panic ! ( "Missing ident span for {:?} ({:?})" , name, item_index) ) ;
733
+ Ident :: new ( name, span)
749
734
}
750
735
751
736
fn def_kind ( & self , index : DefIndex ) -> DefKind {
752
- if !self . is_proc_macro ( index) {
753
- self . kind ( index) . def_kind ( )
754
- } else {
755
- DefKind :: Macro ( macro_kind ( self . raw_proc_macro ( index) ) )
756
- }
737
+ self . kind ( index) . def_kind ( )
757
738
}
758
739
759
740
fn get_span ( & self , index : DefIndex , sess : & Session ) -> Span {
@@ -956,30 +937,19 @@ impl<'a, 'tcx> CrateMetadataRef<'a> {
956
937
}
957
938
958
939
fn get_stability ( & self , id : DefIndex ) -> Option < attr:: Stability > {
959
- match self . is_proc_macro ( id) {
960
- true => self . root . proc_macro_data . as_ref ( ) . unwrap ( ) . stability ,
961
- false => self . root . tables . stability . get ( self , id) . map ( |stab| stab. decode ( self ) ) ,
962
- }
940
+ self . root . tables . stability . get ( self , id) . map ( |stab| stab. decode ( self ) )
963
941
}
964
942
965
943
fn get_const_stability ( & self , id : DefIndex ) -> Option < attr:: ConstStability > {
966
944
self . root . tables . const_stability . get ( self , id) . map ( |stab| stab. decode ( self ) )
967
945
}
968
946
969
947
fn get_deprecation ( & self , id : DefIndex ) -> Option < attr:: Deprecation > {
970
- self . root
971
- . tables
972
- . deprecation
973
- . get ( self , id)
974
- . filter ( |_| !self . is_proc_macro ( id) )
975
- . map ( |depr| depr. decode ( self ) )
948
+ self . root . tables . deprecation . get ( self , id) . map ( |depr| depr. decode ( self ) )
976
949
}
977
950
978
951
fn get_visibility ( & self , id : DefIndex ) -> ty:: Visibility {
979
- match self . is_proc_macro ( id) {
980
- true => ty:: Visibility :: Public ,
981
- false => self . root . tables . visibility . get ( self , id) . unwrap ( ) . decode ( self ) ,
982
- }
952
+ self . root . tables . visibility . get ( self , id) . unwrap ( ) . decode ( self )
983
953
}
984
954
985
955
fn get_impl_data ( & self , id : DefIndex ) -> ImplData {
@@ -1191,7 +1161,7 @@ impl<'a, 'tcx> CrateMetadataRef<'a> {
1191
1161
}
1192
1162
1193
1163
fn is_item_mir_available ( & self , id : DefIndex ) -> bool {
1194
- ! self . is_proc_macro ( id ) && self . root . tables . mir . get ( self , id) . is_some ( )
1164
+ self . root . tables . mir . get ( self , id) . is_some ( )
1195
1165
}
1196
1166
1197
1167
fn module_expansion ( & self , id : DefIndex , sess : & Session ) -> ExpnId {
@@ -1207,7 +1177,6 @@ impl<'a, 'tcx> CrateMetadataRef<'a> {
1207
1177
. tables
1208
1178
. mir
1209
1179
. get ( self , id)
1210
- . filter ( |_| !self . is_proc_macro ( id) )
1211
1180
. unwrap_or_else ( || {
1212
1181
bug ! ( "get_optimized_mir: missing MIR for `{:?}`" , self . local_def_id( id) )
1213
1182
} )
@@ -1223,7 +1192,6 @@ impl<'a, 'tcx> CrateMetadataRef<'a> {
1223
1192
. tables
1224
1193
. mir_abstract_consts
1225
1194
. get ( self , id)
1226
- . filter ( |_| !self . is_proc_macro ( id) )
1227
1195
. map_or ( Ok ( None ) , |v| Ok ( Some ( v. decode ( ( self , tcx) ) ) ) )
1228
1196
}
1229
1197
@@ -1232,7 +1200,6 @@ impl<'a, 'tcx> CrateMetadataRef<'a> {
1232
1200
. tables
1233
1201
. unused_generic_params
1234
1202
. get ( self , id)
1235
- . filter ( |_| !self . is_proc_macro ( id) )
1236
1203
. map ( |params| params. decode ( self ) )
1237
1204
. unwrap_or_default ( )
1238
1205
}
@@ -1242,7 +1209,6 @@ impl<'a, 'tcx> CrateMetadataRef<'a> {
1242
1209
. tables
1243
1210
. promoted_mir
1244
1211
. get ( self , id)
1245
- . filter ( |_| !self . is_proc_macro ( id) )
1246
1212
. unwrap_or_else ( || {
1247
1213
bug ! ( "get_promoted_mir: missing MIR for `{:?}`" , self . local_def_id( id) )
1248
1214
} )
@@ -1546,14 +1512,11 @@ impl<'a, 'tcx> CrateMetadataRef<'a> {
1546
1512
1547
1513
#[ inline]
1548
1514
fn def_key ( & self , index : DefIndex ) -> DefKey {
1549
- * self . def_key_cache . lock ( ) . entry ( index) . or_insert_with ( || {
1550
- let mut key = self . root . tables . def_keys . get ( self , index) . unwrap ( ) . decode ( self ) ;
1551
- if self . is_proc_macro ( index) {
1552
- let name = self . raw_proc_macro ( index) . name ( ) ;
1553
- key. disambiguated_data . data = DefPathData :: MacroNs ( Symbol :: intern ( name) ) ;
1554
- }
1555
- key
1556
- } )
1515
+ * self
1516
+ . def_key_cache
1517
+ . lock ( )
1518
+ . entry ( index)
1519
+ . or_insert_with ( || self . root . tables . def_keys . get ( self , index) . unwrap ( ) . decode ( self ) )
1557
1520
}
1558
1521
1559
1522
// Returns the path leading to the thing with this `id`.
0 commit comments