Skip to content

Commit d337a3b

Browse files
committed
rustc: remove the name field from ty::GenericParamDef.
1 parent 22397bf commit d337a3b

File tree

16 files changed

+45
-40
lines changed

16 files changed

+45
-40
lines changed

src/librustc/ich/impls_ty.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,6 @@ impl_stable_hash_for!(struct ty::Generics {
690690
});
691691

692692
impl_stable_hash_for!(struct ty::GenericParamDef {
693-
name,
694693
def_id,
695694
index,
696695
pure_wrt_drop,

src/librustc/infer/error_reporting/mod.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1338,7 +1338,10 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {
13381338
br_string(br),
13391339
self.tcx.associated_item(def_id).ident
13401340
),
1341-
infer::EarlyBoundRegion(_, name) => format!(" for lifetime parameter `{}`", name),
1341+
infer::EarlyBoundRegion(_, def_id) => format!(
1342+
" for lifetime parameter `{}`",
1343+
self.tcx.generic_param_name(def_id),
1344+
),
13421345
infer::BoundRegionInCoherence(name) => {
13431346
format!(" for lifetime parameter `{}` in coherence check", name)
13441347
}

src/librustc/infer/mod.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ use std::fmt;
3535
use syntax::ast;
3636
use errors::DiagnosticBuilder;
3737
use syntax_pos::{self, Span};
38-
use syntax_pos::symbol::InternedString;
3938
use util::nodemap::FxHashMap;
4039
use arena::SyncDroplessArena;
4140

@@ -355,7 +354,7 @@ pub enum RegionVariableOrigin {
355354
Coercion(Span),
356355

357356
// Region variables created as the values for early-bound regions
358-
EarlyBoundRegion(Span, InternedString),
357+
EarlyBoundRegion(Span, DefId),
359358

360359
// Region variables created for bound regions
361360
// in a function or method that is called
@@ -931,7 +930,7 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {
931930
GenericParamDefKind::Lifetime => {
932931
// Create a region inference variable for the given
933932
// region parameter definition.
934-
self.next_region_var(EarlyBoundRegion(span, param.name)).into()
933+
self.next_region_var(EarlyBoundRegion(span, param.def_id)).into()
935934
}
936935
GenericParamDefKind::Type {..} => {
937936
// Create a type inference variable for the given

src/librustc/traits/auto_trait.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,9 @@ impl<'a, 'tcx> AutoTraitFinder<'a, 'tcx> {
225225
.params
226226
.iter()
227227
.filter_map(|param| match param.kind {
228-
ty::GenericParamDefKind::Lifetime => Some(param.name.to_string()),
228+
ty::GenericParamDefKind::Lifetime => {
229+
Some(tcx.generic_param_name(param.def_id).to_string())
230+
}
229231
_ => None
230232
})
231233
.collect();

src/librustc/traits/error_reporting.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {
387387
},
388388
GenericParamDefKind::Lifetime => continue,
389389
};
390-
let name = param.name.to_string();
390+
let name = self.tcx.generic_param_name(param.def_id).to_string();
391391
flags.push((name, Some(value)));
392392
}
393393

src/librustc/traits/on_unimplemented.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ impl<'a, 'gcx, 'tcx> OnUnimplementedFormatString {
260260
Position::ArgumentNamed(s) if s == "from_desugaring" => (),
261261
// So is `{A}` if A is a type parameter
262262
Position::ArgumentNamed(s) => match generics.params.iter().find(|param| {
263-
param.name == s
263+
tcx.generic_param_name(param.def_id) == s
264264
}) {
265265
Some(_) => (),
266266
None => {
@@ -298,7 +298,7 @@ impl<'a, 'gcx, 'tcx> OnUnimplementedFormatString {
298298
},
299299
GenericParamDefKind::Lifetime => return None
300300
};
301-
let name = param.name.to_string();
301+
let name = tcx.generic_param_name(param.def_id).to_string();
302302
Some((name, value))
303303
}).collect::<FxHashMap<String, String>>();
304304
let empty_string = String::new();

src/librustc/ty/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -844,7 +844,6 @@ pub enum GenericParamDefKind {
844844

845845
#[derive(Clone, RustcEncodable, RustcDecodable)]
846846
pub struct GenericParamDef {
847-
pub name: InternedString,
848847
pub def_id: DefId,
849848
pub index: u32,
850849

src/librustc/util/ppaux.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,7 @@ impl fmt::Debug for ty::GenericParamDef {
637637
};
638638
write!(f, "{}({}, {:?}, {})",
639639
type_name,
640-
self.name,
640+
ty::tls::with(|tcx| tcx.generic_param_name(self.def_id)),
641641
self.def_id,
642642
self.index)
643643
}

src/librustc_codegen_llvm/debuginfo/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,9 @@ pub fn create_function_debug_context(
437437
let mut names = generics.parent.map_or(vec![], |def_id| {
438438
get_parameter_names(cx, cx.tcx.generics_of(def_id))
439439
});
440-
names.extend(generics.params.iter().map(|param| param.name));
440+
names.extend(generics.params.iter().map(|param| {
441+
cx.tcx.generic_param_name(param.def_id)
442+
}));
441443
names
442444
}
443445

src/librustc_typeck/astconv.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -636,12 +636,13 @@ impl<'o, 'gcx: 'tcx, 'tcx> dyn AstConv<'gcx, 'tcx>+'o {
636636
// defaults. This will lead to an ICE if we are not
637637
// careful!
638638
if default_needs_object_self(param) {
639+
let param_name = tcx.generic_param_name(param.def_id);
639640
struct_span_err!(tcx.sess, span, E0393,
640641
"the type parameter `{}` must be explicitly \
641642
specified",
642-
param.name)
643+
param_name)
643644
.span_label(span,
644-
format!("missing reference to `{}`", param.name))
645+
format!("missing reference to `{}`", param_name))
645646
.note(&format!("because of the default `Self` reference, \
646647
type parameters must be specified on object \
647648
types"))

0 commit comments

Comments
 (0)