Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 1da9ade

Browse files
committed
Make GenericParams::type_or_consts private
1 parent 9671841 commit 1da9ade

File tree

11 files changed

+239
-233
lines changed

11 files changed

+239
-233
lines changed

src/tools/rust-analyzer/crates/hir-def/src/child_by_source.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ impl ChildBySource for GenericDefId {
214214
}
215215

216216
let generic_params = db.generic_params(*self);
217-
let mut toc_idx_iter = generic_params.type_or_consts.iter().map(|(idx, _)| idx);
217+
let mut toc_idx_iter = generic_params.iter_type_or_consts().map(|(idx, _)| idx);
218218
let lts_idx_iter = generic_params.lifetimes.iter().map(|(idx, _)| idx);
219219

220220
// For traits the first type index is `Self`, skip it.

src/tools/rust-analyzer/crates/hir-def/src/generics.rs

Lines changed: 209 additions & 198 deletions
Large diffs are not rendered by default.

src/tools/rust-analyzer/crates/hir-def/src/item_tree/pretty.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,7 @@ impl Printer<'_> {
540540
self.print_attrs_of(AttrOwner::LifetimeParamData(parent, idx), " ");
541541
w!(self, "{}", lt.name.display(self.db.upcast()));
542542
}
543-
for (idx, x) in params.type_or_consts.iter() {
543+
for (idx, x) in params.iter_type_or_consts() {
544544
if !first {
545545
w!(self, ", ");
546546
}
@@ -607,12 +607,10 @@ impl Printer<'_> {
607607

608608
match target {
609609
WherePredicateTypeTarget::TypeRef(ty) => this.print_type_ref(ty),
610-
WherePredicateTypeTarget::TypeOrConstParam(id) => {
611-
match &params.type_or_consts[*id].name() {
612-
Some(name) => w!(this, "{}", name.display(self.db.upcast())),
613-
None => w!(this, "_anon_{}", id.into_raw()),
614-
}
615-
}
610+
WherePredicateTypeTarget::TypeOrConstParam(id) => match params[*id].name() {
611+
Some(name) => w!(this, "{}", name.display(self.db.upcast())),
612+
None => w!(this, "_anon_{}", id.into_raw()),
613+
},
616614
}
617615
w!(this, ": ");
618616
this.print_type_bounds(std::slice::from_ref(bound));

src/tools/rust-analyzer/crates/hir-def/src/resolver.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -758,10 +758,10 @@ impl Scope {
758758
}
759759
Scope::GenericParams { params, def: parent } => {
760760
let parent = *parent;
761-
for (local_id, param) in params.type_or_consts.iter() {
761+
for (local_id, param) in params.iter_type_or_consts() {
762762
if let Some(name) = &param.name() {
763763
let id = TypeOrConstParamId { parent, local_id };
764-
let data = &db.generic_params(parent).type_or_consts[local_id];
764+
let data = &db.generic_params(parent)[local_id];
765765
acc.add(
766766
name,
767767
ScopeDef::GenericParam(match data {

src/tools/rust-analyzer/crates/hir-def/src/src.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ impl HasChildSource<LocalTypeOrConstParamId> for GenericDefId {
6464
db: &dyn DefDatabase,
6565
) -> InFile<ArenaMap<LocalTypeOrConstParamId, Self::Value>> {
6666
let generic_params = db.generic_params(*self);
67-
let mut idx_iter = generic_params.type_or_consts.iter().map(|(idx, _)| idx);
67+
let mut idx_iter = generic_params.iter_type_or_consts().map(|(idx, _)| idx);
6868

6969
let (file_id, generic_params_list) = self.file_id_and_params_of(db);
7070

src/tools/rust-analyzer/crates/hir-ty/src/chalk_ext.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ impl TyExt for Ty {
309309
TyKind::Placeholder(idx) => {
310310
let id = from_placeholder_idx(db, *idx);
311311
let generic_params = db.generic_params(id.parent);
312-
let param_data = &generic_params.type_or_consts[id.local_id];
312+
let param_data = &generic_params[id.local_id];
313313
match param_data {
314314
TypeOrConstParamData::TypeParamData(p) => match p.provenance {
315315
hir_def::generics::TypeParamProvenance::ArgumentImplTrait => {

src/tools/rust-analyzer/crates/hir-ty/src/generics.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ impl Generics {
145145
fn find_type_or_const_param(&self, param: TypeOrConstParamId) -> Option<usize> {
146146
if param.parent == self.def {
147147
let idx = param.local_id.into_raw().into_u32() as usize;
148-
debug_assert!(idx <= self.params.type_or_consts.len());
148+
debug_assert!(idx <= self.params.len_type_or_consts());
149149
Some(idx)
150150
} else {
151151
debug_assert_eq!(self.parent_generics().map(|it| it.def), Some(param.parent));
@@ -164,7 +164,7 @@ impl Generics {
164164
if lifetime.parent == self.def {
165165
let idx = lifetime.local_id.into_raw().into_u32() as usize;
166166
debug_assert!(idx <= self.params.lifetimes.len());
167-
Some(self.params.type_or_consts.len() + idx)
167+
Some(self.params.len_type_or_consts() + idx)
168168
} else {
169169
debug_assert_eq!(self.parent_generics().map(|it| it.def), Some(lifetime.parent));
170170
self.parent_generics()

src/tools/rust-analyzer/crates/hir-ty/src/lower.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2071,7 +2071,7 @@ pub(crate) fn impl_self_ty_query(db: &dyn HirDatabase, impl_id: ImplId) -> Binde
20712071
// returns None if def is a type arg
20722072
pub(crate) fn const_param_ty_query(db: &dyn HirDatabase, def: ConstParamId) -> Ty {
20732073
let parent_data = db.generic_params(def.parent());
2074-
let data = &parent_data.type_or_consts[def.local_id()];
2074+
let data = &parent_data[def.local_id()];
20752075
let resolver = def.parent().resolver(db.upcast());
20762076
let ctx = TyLoweringContext::new(db, &resolver, def.parent().into());
20772077
match data {

src/tools/rust-analyzer/crates/hir-ty/src/mir/lower.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ impl MirLowerError {
183183
},
184184
MirLowerError::GenericArgNotProvided(id, subst) => {
185185
let parent = id.parent;
186-
let param = &db.generic_params(parent).type_or_consts[id.local_id];
186+
let param = &db.generic_params(parent)[id.local_id];
187187
writeln!(
188188
f,
189189
"Generic arg not provided for {}",

src/tools/rust-analyzer/crates/hir/src/display.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ impl HirDisplay for TypeOrConstParam {
452452
impl HirDisplay for TypeParam {
453453
fn hir_fmt(&self, f: &mut HirFormatter<'_>) -> Result<(), HirDisplayError> {
454454
let params = f.db.generic_params(self.id.parent());
455-
let param_data = &params.type_or_consts[self.id.local_id()];
455+
let param_data = &params[self.id.local_id()];
456456
let substs = TyBuilder::placeholder_subst(f.db, self.id.parent());
457457
let krate = self.id.parent().krate(f.db).id;
458458
let ty =
@@ -540,10 +540,9 @@ fn write_generic_params(
540540
) -> Result<(), HirDisplayError> {
541541
let params = f.db.generic_params(def);
542542
if params.lifetimes.is_empty()
543-
&& params.type_or_consts.iter().all(|it| it.1.const_param().is_none())
543+
&& params.iter_type_or_consts().all(|it| it.1.const_param().is_none())
544544
&& params
545-
.type_or_consts
546-
.iter()
545+
.iter_type_or_consts()
547546
.filter_map(|it| it.1.type_param())
548547
.all(|param| !matches!(param.provenance, TypeParamProvenance::TypeParamList))
549548
{
@@ -564,7 +563,7 @@ fn write_generic_params(
564563
delim(f)?;
565564
write!(f, "{}", lifetime.name.display(f.db.upcast()))?;
566565
}
567-
for (_, ty) in params.type_or_consts.iter() {
566+
for (_, ty) in params.iter_type_or_consts() {
568567
if let Some(name) = &ty.name() {
569568
match ty {
570569
TypeOrConstParamData::TypeParamData(ty) => {
@@ -616,7 +615,7 @@ fn has_disaplayable_predicates(params: &Interned<GenericParams>) -> bool {
616615
!matches!(
617616
pred,
618617
WherePredicate::TypeBound { target: WherePredicateTypeTarget::TypeOrConstParam(id), .. }
619-
if params.type_or_consts[*id].name().is_none()
618+
if params[*id].name().is_none()
620619
)
621620
})
622621
}
@@ -631,13 +630,13 @@ fn write_where_predicates(
631630
let is_unnamed_type_target =
632631
|params: &Interned<GenericParams>, target: &WherePredicateTypeTarget| {
633632
matches!(target,
634-
WherePredicateTypeTarget::TypeOrConstParam(id) if params.type_or_consts[*id].name().is_none()
633+
WherePredicateTypeTarget::TypeOrConstParam(id) if params[*id].name().is_none()
635634
)
636635
};
637636

638637
let write_target = |target: &WherePredicateTypeTarget, f: &mut HirFormatter<'_>| match target {
639638
WherePredicateTypeTarget::TypeRef(ty) => ty.hir_fmt(f),
640-
WherePredicateTypeTarget::TypeOrConstParam(id) => match params.type_or_consts[*id].name() {
639+
WherePredicateTypeTarget::TypeOrConstParam(id) => match params[*id].name() {
641640
Some(name) => write!(f, "{}", name.display(f.db.upcast())),
642641
None => f.write_str("{unnamed}"),
643642
},

src/tools/rust-analyzer/crates/hir/src/lib.rs

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2503,8 +2503,7 @@ impl Trait {
25032503
count_required_only: bool,
25042504
) -> usize {
25052505
db.generic_params(self.id.into())
2506-
.type_or_consts
2507-
.iter()
2506+
.iter_type_or_consts()
25082507
.filter(|(_, ty)| !matches!(ty, TypeOrConstParamData::TypeParamData(ty) if ty.provenance != TypeParamProvenance::TypeParamList))
25092508
.filter(|(_, ty)| !count_required_only || !ty.has_default())
25102509
.count()
@@ -3125,7 +3124,7 @@ impl_from!(
31253124
impl GenericDef {
31263125
pub fn params(self, db: &dyn HirDatabase) -> Vec<GenericParam> {
31273126
let generics = db.generic_params(self.into());
3128-
let ty_params = generics.type_or_consts.iter().map(|(local_id, _)| {
3127+
let ty_params = generics.iter_type_or_consts().map(|(local_id, _)| {
31293128
let toc = TypeOrConstParam { id: TypeOrConstParamId { parent: self.into(), local_id } };
31303129
match toc.split(db) {
31313130
Either::Left(it) => GenericParam::ConstParam(it),
@@ -3153,8 +3152,7 @@ impl GenericDef {
31533152
pub fn type_or_const_params(self, db: &dyn HirDatabase) -> Vec<TypeOrConstParam> {
31543153
let generics = db.generic_params(self.into());
31553154
generics
3156-
.type_or_consts
3157-
.iter()
3155+
.iter_type_or_consts()
31583156
.map(|(local_id, _)| TypeOrConstParam {
31593157
id: TypeOrConstParamId { parent: self.into(), local_id },
31603158
})
@@ -3496,7 +3494,7 @@ impl TypeParam {
34963494
/// argument)?
34973495
pub fn is_implicit(self, db: &dyn HirDatabase) -> bool {
34983496
let params = db.generic_params(self.id.parent());
3499-
let data = &params.type_or_consts[self.id.local_id()];
3497+
let data = &params[self.id.local_id()];
35003498
match data.type_param().unwrap().provenance {
35013499
hir_def::generics::TypeParamProvenance::TypeParamList => false,
35023500
hir_def::generics::TypeParamProvenance::TraitSelf
@@ -3574,7 +3572,7 @@ impl ConstParam {
35743572

35753573
pub fn name(self, db: &dyn HirDatabase) -> Name {
35763574
let params = db.generic_params(self.id.parent());
3577-
match params.type_or_consts[self.id.local_id()].name() {
3575+
match params[self.id.local_id()].name() {
35783576
Some(it) => it.clone(),
35793577
None => {
35803578
never!();
@@ -3617,7 +3615,7 @@ pub struct TypeOrConstParam {
36173615
impl TypeOrConstParam {
36183616
pub fn name(self, db: &dyn HirDatabase) -> Name {
36193617
let params = db.generic_params(self.id.parent);
3620-
match params.type_or_consts[self.id.local_id].name() {
3618+
match params[self.id.local_id].name() {
36213619
Some(n) => n.clone(),
36223620
_ => Name::missing(),
36233621
}
@@ -3633,7 +3631,7 @@ impl TypeOrConstParam {
36333631

36343632
pub fn split(self, db: &dyn HirDatabase) -> Either<ConstParam, TypeParam> {
36353633
let params = db.generic_params(self.id.parent);
3636-
match &params.type_or_consts[self.id.local_id] {
3634+
match &params[self.id.local_id] {
36373635
hir_def::generics::TypeOrConstParamData::TypeParamData(_) => {
36383636
Either::Right(TypeParam { id: TypeParamId::from_unchecked(self.id) })
36393637
}
@@ -3652,7 +3650,7 @@ impl TypeOrConstParam {
36523650

36533651
pub fn as_type_param(self, db: &dyn HirDatabase) -> Option<TypeParam> {
36543652
let params = db.generic_params(self.id.parent);
3655-
match &params.type_or_consts[self.id.local_id] {
3653+
match &params[self.id.local_id] {
36563654
hir_def::generics::TypeOrConstParamData::TypeParamData(_) => {
36573655
Some(TypeParam { id: TypeParamId::from_unchecked(self.id) })
36583656
}
@@ -3662,7 +3660,7 @@ impl TypeOrConstParam {
36623660

36633661
pub fn as_const_param(self, db: &dyn HirDatabase) -> Option<ConstParam> {
36643662
let params = db.generic_params(self.id.parent);
3665-
match &params.type_or_consts[self.id.local_id] {
3663+
match &params[self.id.local_id] {
36663664
hir_def::generics::TypeOrConstParamData::TypeParamData(_) => None,
36673665
hir_def::generics::TypeOrConstParamData::ConstParamData(_) => {
36683666
Some(ConstParam { id: ConstParamId::from_unchecked(self.id) })

0 commit comments

Comments
 (0)