@@ -35,178 +35,82 @@ pub enum Family {
35
35
AssociatedConst ,
36
36
}
37
37
38
- // GAP 0x00...0x19
39
-
40
- pub const tag_items: usize = 0x100 ; // top-level only
41
-
42
- pub const tag_paths_data_name: usize = 0x20 ;
43
-
44
- pub const tag_def_index: usize = 0x21 ;
45
-
46
- pub const tag_items_data: usize = 0x22 ;
47
-
48
- pub const tag_items_data_item: usize = 0x23 ;
49
-
50
- pub const tag_items_data_item_family: usize = 0x24 ;
51
-
52
- pub const tag_items_data_item_type: usize = 0x25 ;
53
-
54
- // GAP 0x26, 0x27
55
-
56
- pub const tag_items_data_parent_item: usize = 0x28 ;
57
-
58
- pub const tag_items_data_item_is_tuple_struct_ctor: usize = 0x29 ;
59
-
60
- pub const tag_items_closure_kind: usize = 0x2a ;
61
- pub const tag_items_closure_ty: usize = 0x2b ;
62
- pub const tag_def_key: usize = 0x2c ;
63
-
64
- // GAP 0x2d 0x34
65
-
66
- pub const tag_index: usize = 0x110 ; // top-level only
67
- pub const tag_xref_index: usize = 0x111 ; // top-level only
68
- pub const tag_xref_data: usize = 0x112 ; // top-level only
69
- pub const tag_attributes: usize = 0x101 ; // top-level only
70
-
71
- // The list of crates that this crate depends on
72
- pub const tag_crate_deps: usize = 0x102 ; // top-level only
73
- pub const tag_crate_hash: usize = 0x103 ; // top-level only
74
- pub const tag_crate_crate_name: usize = 0x104 ; // top-level only
75
- pub const tag_crate_disambiguator: usize = 0x113 ; // top-level only
76
-
77
- // GAP 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a
78
-
79
- pub const tag_item_trait_ref: usize = 0x3b ;
80
-
81
- // discriminator value for variants
82
- pub const tag_disr_val: usize = 0x3c ;
83
-
84
- // GAP 0x3d, 0x3e, 0x3f, 0x40
85
-
86
- pub const tag_item_fields: usize = 0x41 ;
87
- // GAP 0x42
88
- pub const tag_item_variances: usize = 0x43 ;
89
- // GAP 0x44
90
- pub const tag_item_trait_method_explicit_self: usize = 0x45 ;
91
-
92
- // GAP 0x46, 0x47, 0x48
93
-
94
- // used to encode crate_ctxt side tables
95
- pub const tag_ast: usize = 0x50 ;
96
-
97
- // GAP 0x51
98
-
99
- pub const tag_mir: usize = 0x52 ;
100
-
101
- // GAP 0x53...0x6a
102
-
103
- pub const tag_item_trait_item_has_body: usize = 0x70 ;
104
-
105
- pub const tag_crate_triple: usize = 0x105 ; // top-level only
106
-
107
- pub const tag_dylib_dependency_formats: usize = 0x106 ; // top-level only
108
-
109
- pub const tag_lang_items: usize = 0x107 ; // top-level only
110
-
111
- // GAP 0x73, 0x74, 0x75
112
-
113
- pub const tag_lang_items_missing: usize = 0x76 ; // top-level only
114
-
115
- // GAP 0x77
116
-
117
- pub const tag_items_data_item_visibility: usize = 0x78 ;
118
- pub const tag_items_data_item_inherent_impls: usize = 0x79 ;
119
-
120
- // GAP 0x7a
121
-
122
- // GAP 0x7c
123
- pub const tag_mod_children: usize = 0x7b ;
124
-
125
- // GAP 0x108 // top-level only
38
+ // NB: increment this if you change the format of metadata such that
39
+ // rustc_version can't be found.
40
+ pub const metadata_encoding_version : & ' static [ u8 ] = & [ b'r' , b'u' , b's' , b't' , 0 , 0 , 0 , 2 ] ;
126
41
127
42
// GAP 0x7c
128
-
129
43
// GAP 0x108
130
- pub const tag_impls: usize = 0x109 ; // top-level only
131
-
132
- // GAP 0x7d, 0x7e, 0x7f, 0x80, 0x81
133
-
134
- pub const tag_native_libraries: usize = 0x10a ; // top-level only
135
-
136
- // GAP 0x82, 0x83, 0x84
137
-
138
- pub const tag_plugin_registrar_fn: usize = 0x10b ; // top-level only
139
-
140
- pub const tag_method_argument_names: usize = 0x85 ;
141
-
142
- // GAP 0x86
143
-
144
- pub const tag_reachable_ids: usize = 0x10c ; // top-level only
145
-
146
- // GAP 0x87
147
-
148
- pub const tag_items_data_item_stability: usize = 0x88 ;
149
-
150
- pub const tag_items_data_item_repr: usize = 0x89 ;
151
-
152
- // GAP 0x10d // top-level only
153
-
154
- // GAP 0x8a
155
-
156
- pub const tag_items_data_item_struct_ctor: usize = 0x8b ;
157
- pub const tag_attribute_is_sugared_doc: usize = 0x8c ;
158
- // GAP 0x8d
159
- pub const tag_items_data_region: usize = 0x8e ;
160
-
161
- pub const tag_item_generics: usize = 0x8f ;
162
- // GAP 0x90, 0x91, 0x92, 0x93, 0x94
163
-
164
- pub const tag_item_predicates: usize = 0x95 ;
165
- // GAP 0x96, 0x97, 0x98, 0x99
166
-
167
- pub const tag_unsafety: usize = 0x9a ;
168
-
169
- pub const tag_polarity: usize = 0x9d ;
170
-
171
- pub const tag_macro_defs: usize = 0x10e ; // top-level only
172
-
173
- // GAP 0x9e, 0x9f
174
-
175
- pub const tag_paren_sugar: usize = 0xa0 ;
176
-
177
- pub const tag_codemap: usize = 0xa1 ;
178
-
179
- // GAP 0xa2
180
-
181
- pub const tag_item_super_predicates: usize = 0xa3 ;
182
-
183
- pub const tag_defaulted_trait: usize = 0xa4 ;
184
-
185
- pub const tag_impl_coerce_unsized_kind: usize = 0xa5 ;
186
-
187
- pub const tag_items_data_item_constness: usize = 0xa6 ;
188
-
189
- pub const tag_items_data_item_deprecation: usize = 0xa7 ;
190
-
191
- pub const tag_items_data_item_defaultness: usize = 0xa8 ;
192
-
193
- pub const tag_items_data_parent_impl: usize = 0xa9 ;
194
-
195
- pub const tag_rustc_version: usize = 0x10f ;
196
44
pub fn rustc_version ( ) -> String {
197
45
format ! (
198
46
"rustc {}" ,
199
47
option_env!( "CFG_VERSION" ) . unwrap_or( "unknown version" )
200
48
)
201
49
}
202
50
203
- pub const tag_panic_strategy: usize = 0x114 ;
204
-
205
- pub const tag_macro_derive_registrar: usize = 0x115 ;
51
+ pub mod root_tag {
52
+ pub const rustc_version: usize = 0x10f ;
53
+ pub const crate_deps: usize = 0x102 ;
54
+ pub const crate_hash: usize = 0x103 ;
55
+ pub const crate_crate_name: usize = 0x104 ;
56
+ pub const crate_disambiguator: usize = 0x113 ;
57
+ pub const items: usize = 0x100 ;
58
+ pub const index: usize = 0x110 ;
59
+ pub const xref_index: usize = 0x111 ;
60
+ pub const xref_data: usize = 0x112 ;
61
+ pub const crate_triple: usize = 0x105 ;
62
+ pub const dylib_dependency_formats: usize = 0x106 ;
63
+ pub const lang_items: usize = 0x107 ;
64
+ pub const lang_items_missing: usize = 0x76 ;
65
+ pub const impls: usize = 0x109 ;
66
+ pub const native_libraries: usize = 0x10a ;
67
+ pub const plugin_registrar_fn: usize = 0x10b ;
68
+ pub const panic_strategy: usize = 0x114 ;
69
+ pub const macro_derive_registrar: usize = 0x115 ;
70
+ pub const reachable_ids: usize = 0x10c ;
71
+ pub const macro_defs: usize = 0x10e ;
72
+ pub const codemap: usize = 0xa1 ;
73
+ }
206
74
207
- // NB: increment this if you change the format of metadata such that
208
- // rustc_version can't be found.
209
- pub const metadata_encoding_version : & ' static [ u8 ] = & [ b'r' , b'u' , b's' , b't' , 0 , 0 , 0 , 2 ] ;
75
+ pub mod item_tag {
76
+ pub const name: usize = 0x20 ;
77
+ pub const def_index: usize = 0x21 ;
78
+ pub const family: usize = 0x24 ;
79
+ pub const ty: usize = 0x25 ;
80
+ pub const parent_item: usize = 0x28 ;
81
+ pub const is_tuple_struct_ctor: usize = 0x29 ;
82
+ pub const closure_kind: usize = 0x2a ;
83
+ pub const closure_ty: usize = 0x2b ;
84
+ pub const def_key: usize = 0x2c ;
85
+ pub const attributes: usize = 0x101 ;
86
+ pub const trait_ref: usize = 0x3b ;
87
+ pub const disr_val: usize = 0x3c ;
88
+ pub const fields: usize = 0x41 ;
89
+ pub const variances: usize = 0x43 ;
90
+ pub const trait_method_explicit_self: usize = 0x45 ;
91
+ pub const ast: usize = 0x50 ;
92
+ pub const mir: usize = 0x52 ;
93
+ pub const trait_item_has_body: usize = 0x70 ;
94
+ pub const visibility: usize = 0x78 ;
95
+ pub const inherent_impls: usize = 0x79 ;
96
+ pub const children: usize = 0x7b ;
97
+ pub const method_argument_names: usize = 0x85 ;
98
+ pub const stability: usize = 0x88 ;
99
+ pub const repr: usize = 0x89 ;
100
+ pub const struct_ctor: usize = 0x8b ;
101
+ pub const generics: usize = 0x8f ;
102
+ pub const predicates: usize = 0x95 ;
103
+ pub const unsafety: usize = 0x9a ;
104
+ pub const polarity: usize = 0x9d ;
105
+ pub const paren_sugar: usize = 0xa0 ;
106
+ pub const super_predicates: usize = 0xa3 ;
107
+ pub const defaulted_trait: usize = 0xa4 ;
108
+ pub const impl_coerce_unsized_kind: usize = 0xa5 ;
109
+ pub const constness: usize = 0xa6 ;
110
+ pub const deprecation: usize = 0xa7 ;
111
+ pub const defaultness: usize = 0xa8 ;
112
+ pub const parent_impl: usize = 0xa9 ;
113
+ }
210
114
211
115
/// The shorthand encoding of `Ty` uses `TypeVariants`' variant `usize`
212
116
/// and is offset by this value so it never matches a real variant.
0 commit comments