Skip to content

Commit 5600c62

Browse files
committed
move direct accesses of node to go through as_local_node_id, unless
they are being used as an opaque "position identifier"
1 parent aa40a1c commit 5600c62

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+652
-567
lines changed

src/librustc/front/map/mod.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ impl<'ast> Map<'ast> {
274274

275275
pub fn as_local_node_id(&self, def_id: DefId) -> Option<NodeId> {
276276
if def_id.krate == LOCAL_CRATE {
277-
Some(def_id.node)
277+
Some(def_id.xxx_node)
278278
} else {
279279
None
280280
}
@@ -301,6 +301,10 @@ impl<'ast> Map<'ast> {
301301
}
302302
}
303303

304+
pub fn get_if_local(&self, id: DefId) -> Option<Node<'ast>> {
305+
self.as_local_node_id(id).map(|id| self.get(id))
306+
}
307+
304308
/// Retrieve the Node corresponding to `id`, returning None if
305309
/// cannot be found.
306310
pub fn find(&self, id: NodeId) -> Option<Node<'ast>> {
@@ -609,9 +613,13 @@ impl<'ast> Map<'ast> {
609613
.unwrap_or_else(|| panic!("AstMap.span: could not find span for id {:?}", id))
610614
}
611615

616+
pub fn span_if_local(&self, id: DefId) -> Option<Span> {
617+
self.as_local_node_id(id).map(|id| self.span(id))
618+
}
619+
612620
pub fn def_id_span(&self, def_id: DefId, fallback: Span) -> Span {
613-
if def_id.is_local() {
614-
self.opt_span(def_id.node).unwrap_or(fallback)
621+
if let Some(node_id) = self.as_local_node_id(def_id) {
622+
self.opt_span(node_id).unwrap_or(fallback)
615623
} else {
616624
fallback
617625
}

src/librustc/metadata/csearch.rs

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ pub struct MethodInfo {
3333

3434
pub fn get_symbol(cstore: &cstore::CStore, def: DefId) -> String {
3535
let cdata = cstore.get_crate_data(def.krate);
36-
decoder::get_symbol(&cdata, def.node)
36+
decoder::get_symbol(&cdata, def.xxx_node)
3737
}
3838

3939
/// Iterates over all the language items in the given crate.
@@ -59,7 +59,7 @@ pub fn each_child_of_item<F>(cstore: &cstore::CStore,
5959
};
6060
decoder::each_child_of_item(cstore.intr.clone(),
6161
&*crate_data,
62-
def_id.node,
62+
def_id.xxx_node,
6363
get_crate_data,
6464
callback)
6565
}
@@ -83,7 +83,7 @@ pub fn each_top_level_item_of_crate<F>(cstore: &cstore::CStore,
8383
pub fn get_item_path(tcx: &ty::ctxt, def: DefId) -> Vec<ast_map::PathElem> {
8484
let cstore = &tcx.sess.cstore;
8585
let cdata = cstore.get_crate_data(def.krate);
86-
let path = decoder::get_item_path(&*cdata, def.node);
86+
let path = decoder::get_item_path(&*cdata, def.xxx_node);
8787

8888
cdata.with_local_path(|cpath| {
8989
let mut r = Vec::with_capacity(cpath.len() + path.len());
@@ -96,7 +96,7 @@ pub fn get_item_path(tcx: &ty::ctxt, def: DefId) -> Vec<ast_map::PathElem> {
9696
pub fn get_item_name(tcx: &ty::ctxt, def: DefId) -> ast::Name {
9797
let cstore = &tcx.sess.cstore;
9898
let cdata = cstore.get_crate_data(def.krate);
99-
decoder::get_item_name(&cstore.intr, &cdata, def.node)
99+
decoder::get_item_name(&cstore.intr, &cdata, def.xxx_node)
100100
}
101101

102102
pub enum FoundAst<'ast> {
@@ -113,87 +113,87 @@ pub fn maybe_get_item_ast<'tcx>(tcx: &ty::ctxt<'tcx>, def: DefId,
113113
-> FoundAst<'tcx> {
114114
let cstore = &tcx.sess.cstore;
115115
let cdata = cstore.get_crate_data(def.krate);
116-
decoder::maybe_get_item_ast(&*cdata, tcx, def.node, decode_inlined_item)
116+
decoder::maybe_get_item_ast(&*cdata, tcx, def.xxx_node, decode_inlined_item)
117117
}
118118

119119
/// Returns information about the given implementation.
120120
pub fn get_impl_items(cstore: &cstore::CStore, impl_def_id: DefId)
121121
-> Vec<ty::ImplOrTraitItemId> {
122122
let cdata = cstore.get_crate_data(impl_def_id.krate);
123-
decoder::get_impl_items(&*cdata, impl_def_id.node)
123+
decoder::get_impl_items(&*cdata, impl_def_id.xxx_node)
124124
}
125125

126126
pub fn get_impl_or_trait_item<'tcx>(tcx: &ty::ctxt<'tcx>, def: DefId)
127127
-> ty::ImplOrTraitItem<'tcx> {
128128
let cdata = tcx.sess.cstore.get_crate_data(def.krate);
129129
decoder::get_impl_or_trait_item(tcx.sess.cstore.intr.clone(),
130130
&*cdata,
131-
def.node,
131+
def.xxx_node,
132132
tcx)
133133
}
134134

135135
pub fn get_trait_name(cstore: &cstore::CStore, def: DefId) -> ast::Name {
136136
let cdata = cstore.get_crate_data(def.krate);
137137
decoder::get_trait_name(cstore.intr.clone(),
138138
&*cdata,
139-
def.node)
139+
def.xxx_node)
140140
}
141141

142142
pub fn is_static_method(cstore: &cstore::CStore, def: DefId) -> bool {
143143
let cdata = cstore.get_crate_data(def.krate);
144-
decoder::is_static_method(&*cdata, def.node)
144+
decoder::is_static_method(&*cdata, def.xxx_node)
145145
}
146146

147147
pub fn get_trait_item_def_ids(cstore: &cstore::CStore, def: DefId)
148148
-> Vec<ty::ImplOrTraitItemId> {
149149
let cdata = cstore.get_crate_data(def.krate);
150-
decoder::get_trait_item_def_ids(&*cdata, def.node)
150+
decoder::get_trait_item_def_ids(&*cdata, def.xxx_node)
151151
}
152152

153153
pub fn get_item_variances(cstore: &cstore::CStore,
154154
def: DefId) -> ty::ItemVariances {
155155
let cdata = cstore.get_crate_data(def.krate);
156-
decoder::get_item_variances(&*cdata, def.node)
156+
decoder::get_item_variances(&*cdata, def.xxx_node)
157157
}
158158

159159
pub fn get_provided_trait_methods<'tcx>(tcx: &ty::ctxt<'tcx>,
160160
def: DefId)
161161
-> Vec<Rc<ty::Method<'tcx>>> {
162162
let cstore = &tcx.sess.cstore;
163163
let cdata = cstore.get_crate_data(def.krate);
164-
decoder::get_provided_trait_methods(cstore.intr.clone(), &*cdata, def.node, tcx)
164+
decoder::get_provided_trait_methods(cstore.intr.clone(), &*cdata, def.xxx_node, tcx)
165165
}
166166

167167
pub fn get_associated_consts<'tcx>(tcx: &ty::ctxt<'tcx>, def: DefId)
168168
-> Vec<Rc<ty::AssociatedConst<'tcx>>> {
169169
let cstore = &tcx.sess.cstore;
170170
let cdata = cstore.get_crate_data(def.krate);
171-
decoder::get_associated_consts(cstore.intr.clone(), &*cdata, def.node, tcx)
171+
decoder::get_associated_consts(cstore.intr.clone(), &*cdata, def.xxx_node, tcx)
172172
}
173173

174174
pub fn get_type_name_if_impl(cstore: &cstore::CStore, def: DefId)
175175
-> Option<ast::Name> {
176176
let cdata = cstore.get_crate_data(def.krate);
177-
decoder::get_type_name_if_impl(&*cdata, def.node)
177+
decoder::get_type_name_if_impl(&*cdata, def.xxx_node)
178178
}
179179

180180
pub fn get_methods_if_impl(cstore: &cstore::CStore,
181181
def: DefId)
182182
-> Option<Vec<MethodInfo> > {
183183
let cdata = cstore.get_crate_data(def.krate);
184-
decoder::get_methods_if_impl(cstore.intr.clone(), &*cdata, def.node)
184+
decoder::get_methods_if_impl(cstore.intr.clone(), &*cdata, def.xxx_node)
185185
}
186186

187187
pub fn get_item_attrs(cstore: &cstore::CStore,
188188
def_id: DefId)
189189
-> Vec<ast::Attribute> {
190190
let cdata = cstore.get_crate_data(def_id.krate);
191-
decoder::get_item_attrs(&*cdata, def_id.node)
191+
decoder::get_item_attrs(&*cdata, def_id.xxx_node)
192192
}
193193

194194
pub fn get_struct_field_names(cstore: &cstore::CStore, def: DefId) -> Vec<ast::Name> {
195195
let cdata = cstore.get_crate_data(def.krate);
196-
decoder::get_struct_field_names(&cstore.intr, &*cdata, def.node)
196+
decoder::get_struct_field_names(&cstore.intr, &*cdata, def.xxx_node)
197197
}
198198

199199
pub fn get_struct_field_attrs(cstore: &cstore::CStore, def: DefId) -> FnvHashMap<ast::NodeId,
@@ -207,35 +207,35 @@ pub fn get_type<'tcx>(tcx: &ty::ctxt<'tcx>,
207207
-> ty::TypeScheme<'tcx> {
208208
let cstore = &tcx.sess.cstore;
209209
let cdata = cstore.get_crate_data(def.krate);
210-
decoder::get_type(&*cdata, def.node, tcx)
210+
decoder::get_type(&*cdata, def.xxx_node, tcx)
211211
}
212212

213213
pub fn get_trait_def<'tcx>(tcx: &ty::ctxt<'tcx>, def: DefId) -> ty::TraitDef<'tcx> {
214214
let cstore = &tcx.sess.cstore;
215215
let cdata = cstore.get_crate_data(def.krate);
216-
decoder::get_trait_def(&*cdata, def.node, tcx)
216+
decoder::get_trait_def(&*cdata, def.xxx_node, tcx)
217217
}
218218

219219
pub fn get_adt_def<'tcx>(tcx: &ty::ctxt<'tcx>, def: DefId) -> ty::AdtDefMaster<'tcx> {
220220
let cstore = &tcx.sess.cstore;
221221
let cdata = cstore.get_crate_data(def.krate);
222-
decoder::get_adt_def(&cstore.intr, &*cdata, def.node, tcx)
222+
decoder::get_adt_def(&cstore.intr, &*cdata, def.xxx_node, tcx)
223223
}
224224

225225
pub fn get_predicates<'tcx>(tcx: &ty::ctxt<'tcx>, def: DefId)
226226
-> ty::GenericPredicates<'tcx>
227227
{
228228
let cstore = &tcx.sess.cstore;
229229
let cdata = cstore.get_crate_data(def.krate);
230-
decoder::get_predicates(&*cdata, def.node, tcx)
230+
decoder::get_predicates(&*cdata, def.xxx_node, tcx)
231231
}
232232

233233
pub fn get_super_predicates<'tcx>(tcx: &ty::ctxt<'tcx>, def: DefId)
234234
-> ty::GenericPredicates<'tcx>
235235
{
236236
let cstore = &tcx.sess.cstore;
237237
let cdata = cstore.get_crate_data(def.krate);
238-
decoder::get_super_predicates(&*cdata, def.node, tcx)
238+
decoder::get_super_predicates(&*cdata, def.xxx_node, tcx)
239239
}
240240

241241
pub fn get_impl_polarity<'tcx>(tcx: &ty::ctxt<'tcx>,
@@ -244,7 +244,7 @@ pub fn get_impl_polarity<'tcx>(tcx: &ty::ctxt<'tcx>,
244244
{
245245
let cstore = &tcx.sess.cstore;
246246
let cdata = cstore.get_crate_data(def.krate);
247-
decoder::get_impl_polarity(&*cdata, def.node)
247+
decoder::get_impl_polarity(&*cdata, def.xxx_node)
248248
}
249249

250250
pub fn get_custom_coerce_unsized_kind<'tcx>(
@@ -254,7 +254,7 @@ pub fn get_custom_coerce_unsized_kind<'tcx>(
254254
{
255255
let cstore = &tcx.sess.cstore;
256256
let cdata = cstore.get_crate_data(def.krate);
257-
decoder::get_custom_coerce_unsized_kind(&*cdata, def.node)
257+
decoder::get_custom_coerce_unsized_kind(&*cdata, def.xxx_node)
258258
}
259259

260260
// Given a def_id for an impl, return the trait it implements,
@@ -264,7 +264,7 @@ pub fn get_impl_trait<'tcx>(tcx: &ty::ctxt<'tcx>,
264264
-> Option<ty::TraitRef<'tcx>> {
265265
let cstore = &tcx.sess.cstore;
266266
let cdata = cstore.get_crate_data(def.krate);
267-
decoder::get_impl_trait(&*cdata, def.node, tcx)
267+
decoder::get_impl_trait(&*cdata, def.xxx_node, tcx)
268268
}
269269

270270
pub fn get_native_libraries(cstore: &cstore::CStore, crate_num: ast::CrateNum)
@@ -279,7 +279,7 @@ pub fn each_inherent_implementation_for_type<F>(cstore: &cstore::CStore,
279279
F: FnMut(DefId),
280280
{
281281
let cdata = cstore.get_crate_data(def_id.krate);
282-
decoder::each_inherent_implementation_for_type(&*cdata, def_id.node, callback)
282+
decoder::each_inherent_implementation_for_type(&*cdata, def_id.xxx_node, callback)
283283
}
284284

285285
pub fn each_implementation_for_trait<F>(cstore: &cstore::CStore,
@@ -300,15 +300,15 @@ pub fn get_trait_of_item(cstore: &cstore::CStore,
300300
tcx: &ty::ctxt)
301301
-> Option<DefId> {
302302
let cdata = cstore.get_crate_data(def_id.krate);
303-
decoder::get_trait_of_item(&*cdata, def_id.node, tcx)
303+
decoder::get_trait_of_item(&*cdata, def_id.xxx_node, tcx)
304304
}
305305

306306
pub fn get_tuple_struct_definition_if_ctor(cstore: &cstore::CStore,
307307
def_id: DefId)
308308
-> Option<DefId>
309309
{
310310
let cdata = cstore.get_crate_data(def_id.krate);
311-
decoder::get_tuple_struct_definition_if_ctor(&*cdata, def_id.node)
311+
decoder::get_tuple_struct_definition_if_ctor(&*cdata, def_id.xxx_node)
312312
}
313313

314314
pub fn get_dylib_dependency_formats(cstore: &cstore::CStore,
@@ -330,7 +330,7 @@ pub fn get_method_arg_names(cstore: &cstore::CStore, did: DefId)
330330
-> Vec<String>
331331
{
332332
let cdata = cstore.get_crate_data(did.krate);
333-
decoder::get_method_arg_names(&*cdata, did.node)
333+
decoder::get_method_arg_names(&*cdata, did.xxx_node)
334334
}
335335

336336
pub fn get_reachable_ids(cstore: &cstore::CStore, cnum: ast::CrateNum)
@@ -342,24 +342,24 @@ pub fn get_reachable_ids(cstore: &cstore::CStore, cnum: ast::CrateNum)
342342

343343
pub fn is_typedef(cstore: &cstore::CStore, did: DefId) -> bool {
344344
let cdata = cstore.get_crate_data(did.krate);
345-
decoder::is_typedef(&*cdata, did.node)
345+
decoder::is_typedef(&*cdata, did.xxx_node)
346346
}
347347

348348
pub fn is_const_fn(cstore: &cstore::CStore, did: DefId) -> bool {
349349
let cdata = cstore.get_crate_data(did.krate);
350-
decoder::is_const_fn(&*cdata, did.node)
350+
decoder::is_const_fn(&*cdata, did.xxx_node)
351351
}
352352

353353
pub fn is_impl(cstore: &cstore::CStore, did: DefId) -> bool {
354354
let cdata = cstore.get_crate_data(did.krate);
355-
decoder::is_impl(&*cdata, did.node)
355+
decoder::is_impl(&*cdata, did.xxx_node)
356356
}
357357

358358
pub fn get_stability(cstore: &cstore::CStore,
359359
def: DefId)
360360
-> Option<attr::Stability> {
361361
let cdata = cstore.get_crate_data(def.krate);
362-
decoder::get_stability(&*cdata, def.node)
362+
decoder::get_stability(&*cdata, def.xxx_node)
363363
}
364364

365365
pub fn is_staged_api(cstore: &cstore::CStore, krate: ast::CrateNum) -> bool {
@@ -369,21 +369,21 @@ pub fn is_staged_api(cstore: &cstore::CStore, krate: ast::CrateNum) -> bool {
369369
pub fn get_repr_attrs(cstore: &cstore::CStore, def: DefId)
370370
-> Vec<attr::ReprAttr> {
371371
let cdata = cstore.get_crate_data(def.krate);
372-
decoder::get_repr_attrs(&*cdata, def.node)
372+
decoder::get_repr_attrs(&*cdata, def.xxx_node)
373373
}
374374

375375
pub fn is_defaulted_trait(cstore: &cstore::CStore, trait_def_id: DefId) -> bool {
376376
let cdata = cstore.get_crate_data(trait_def_id.krate);
377-
decoder::is_defaulted_trait(&*cdata, trait_def_id.node)
377+
decoder::is_defaulted_trait(&*cdata, trait_def_id.xxx_node)
378378
}
379379

380380
pub fn is_default_impl(cstore: &cstore::CStore, impl_did: DefId) -> bool {
381381
let cdata = cstore.get_crate_data(impl_did.krate);
382-
decoder::is_default_impl(&*cdata, impl_did.node)
382+
decoder::is_default_impl(&*cdata, impl_did.xxx_node)
383383
}
384384

385385
pub fn is_extern_fn(cstore: &cstore::CStore, did: DefId,
386386
tcx: &ty::ctxt) -> bool {
387387
let cdata = cstore.get_crate_data(did.krate);
388-
decoder::is_extern_fn(&*cdata, did.node, tcx)
388+
decoder::is_extern_fn(&*cdata, did.xxx_node, tcx)
389389
}

0 commit comments

Comments
 (0)