File tree Expand file tree Collapse file tree 5 files changed +15
-9
lines changed Expand file tree Collapse file tree 5 files changed +15
-9
lines changed Original file line number Diff line number Diff line change @@ -404,6 +404,15 @@ impl GenericParamsCollector {
404
404
}
405
405
406
406
impl GenericParams {
407
+ /// Number of Generic parameters (type_or_consts + lifetimes)
408
+ pub fn len(&self) -> usize {
409
+ self.type_or_consts.len() + self.lifetimes.len()
410
+ }
411
+
412
+ pub fn is_empty(&self) -> bool {
413
+ self.len() == 0
414
+ }
415
+
407
416
/// Iterator of type_or_consts field
408
417
pub fn iter(
409
418
&self,
Original file line number Diff line number Diff line change @@ -526,7 +526,7 @@ impl Printer<'_> {
526
526
}
527
527
528
528
fn print_generic_params(&mut self, params: &GenericParams) {
529
- if params.type_or_consts.is_empty() && params.lifetimes. is_empty() {
529
+ if params.is_empty() {
530
530
return;
531
531
}
532
532
Original file line number Diff line number Diff line change @@ -644,8 +644,7 @@ pub fn is_dyn_method(
644
644
let ItemContainerId::TraitId(trait_id) = func.lookup(db.upcast()).container else {
645
645
return None;
646
646
};
647
- let generic_params = db.generic_params(trait_id.into());
648
- let trait_params = generic_params.type_or_consts.len() + generic_params.lifetimes.len();
647
+ let trait_params = db.generic_params(trait_id.into()).len();
649
648
let fn_params = fn_subst.len(Interner) - trait_params;
650
649
let trait_ref = TraitRef {
651
650
trait_id: to_chalk_trait_id(trait_id),
@@ -687,8 +686,7 @@ pub(crate) fn lookup_impl_method_query(
687
686
let ItemContainerId::TraitId(trait_id) = func.lookup(db.upcast()).container else {
688
687
return (func, fn_subst);
689
688
};
690
- let generic_params = db.generic_params(trait_id.into());
691
- let trait_params = generic_params.type_or_consts.len() + generic_params.lifetimes.len();
689
+ let trait_params = db.generic_params(trait_id.into()).len();
692
690
let fn_params = fn_subst.len(Interner) - trait_params;
693
691
let trait_ref = TraitRef {
694
692
trait_id: to_chalk_trait_id(trait_id),
Original file line number Diff line number Diff line change @@ -373,13 +373,13 @@ impl Generics {
373
373
/// Returns total number of generic parameters in scope, including those from parent.
374
374
pub(crate) fn len(&self) -> usize {
375
375
let parent = self.parent_generics().map_or(0, Generics::len);
376
- let child = self.params.type_or_consts.len() + self.params.lifetimes. len();
376
+ let child = self.params.len();
377
377
parent + child
378
378
}
379
379
380
380
/// Returns numbers of generic parameters and lifetimes excluding those from parent.
381
381
pub(crate) fn len_self(&self) -> usize {
382
- self.params.type_or_consts.len() + self.params.lifetimes. len()
382
+ self.params.len()
383
383
}
384
384
385
385
/// Returns number of generic parameter excluding those from parent
Original file line number Diff line number Diff line change @@ -1418,8 +1418,7 @@ impl Adt {
1418
1418
}
1419
1419
1420
1420
pub fn layout(self, db: &dyn HirDatabase) -> Result<Layout, LayoutError> {
1421
- let generic_params = &db.generic_params(self.into());
1422
- if generic_params.iter().next().is_some() || generic_params.iter_lt().next().is_some() {
1421
+ if !db.generic_params(self.into()).is_empty() {
1423
1422
return Err(LayoutError::HasPlaceholder);
1424
1423
}
1425
1424
let krate = self.krate(db).id;
You can’t perform that action at this time.
0 commit comments