This repository was archived by the owner on May 28, 2025. It is now read-only.
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 {
404404}
405405
406406impl 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+
407416 /// Iterator of type_or_consts field
408417 pub fn iter (
409418 & self ,
Original file line number Diff line number Diff line change @@ -526,7 +526,7 @@ impl Printer<'_> {
526526 }
527527
528528 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 ( ) {
530530 return ;
531531 }
532532
Original file line number Diff line number Diff line change @@ -644,8 +644,7 @@ pub fn is_dyn_method(
644644 let ItemContainerId :: TraitId ( trait_id) = func. lookup ( db. upcast ( ) ) . container else {
645645 return None ;
646646 } ;
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 ( ) ;
649648 let fn_params = fn_subst. len ( Interner ) - trait_params;
650649 let trait_ref = TraitRef {
651650 trait_id : to_chalk_trait_id ( trait_id) ,
@@ -687,8 +686,7 @@ pub(crate) fn lookup_impl_method_query(
687686 let ItemContainerId :: TraitId ( trait_id) = func. lookup ( db. upcast ( ) ) . container else {
688687 return ( func, fn_subst) ;
689688 } ;
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 ( ) ;
692690 let fn_params = fn_subst. len ( Interner ) - trait_params;
693691 let trait_ref = TraitRef {
694692 trait_id : to_chalk_trait_id ( trait_id) ,
Original file line number Diff line number Diff line change @@ -373,13 +373,13 @@ impl Generics {
373373 /// Returns total number of generic parameters in scope, including those from parent.
374374 pub ( crate ) fn len ( & self ) -> usize {
375375 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 ( ) ;
377377 parent + child
378378 }
379379
380380 /// Returns numbers of generic parameters and lifetimes excluding those from parent.
381381 pub ( crate ) fn len_self ( & self ) -> usize {
382- self . params . type_or_consts . len ( ) + self . params . lifetimes . len ( )
382+ self . params . len ( )
383383 }
384384
385385 /// 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 {
14181418 }
14191419
14201420 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 ( ) {
14231422 return Err ( LayoutError :: HasPlaceholder ) ;
14241423 }
14251424 let krate = self . krate ( db) . id ;
You can’t perform that action at this time.
0 commit comments