@@ -130,21 +130,7 @@ impl<'a, Ans: LookupAnswer> AnswersSolver<'a, Ans> {
130
130
. iter ( )
131
131
. any ( |( _, metadata) | metadata. has_base_any ( ) ) ;
132
132
133
- let named_tuple_metadata =
134
- bases_with_metadata
135
- . iter ( )
136
- . find_map ( |( base_class_object, metadata) | {
137
- if base_class_object. has_qname (
138
- ModuleName :: type_checker_internals ( ) . as_str ( ) ,
139
- "NamedTupleFallback" ,
140
- ) {
141
- Some ( NamedTupleMetadata {
142
- elements : self . get_named_tuple_elements ( cls, errors) ,
143
- } )
144
- } else {
145
- metadata. named_tuple_metadata ( ) . cloned ( )
146
- }
147
- } ) ;
133
+ let named_tuple_metadata = self . named_tuple_metadata ( cls, & bases_with_metadata, errors) ;
148
134
if named_tuple_metadata. is_some ( ) && bases_with_metadata. len ( ) > 1 {
149
135
self . error (
150
136
errors,
@@ -473,6 +459,28 @@ impl<'a, Ans: LookupAnswer> AnswersSolver<'a, Ans> {
473
459
protocol_metadata
474
460
}
475
461
462
+ fn named_tuple_metadata (
463
+ & self ,
464
+ cls : & Class ,
465
+ bases_with_metadata : & [ ( Class , Arc < ClassMetadata > ) ] ,
466
+ errors : & ErrorCollector ,
467
+ ) -> Option < NamedTupleMetadata > {
468
+ bases_with_metadata
469
+ . iter ( )
470
+ . find_map ( |( base_class_object, metadata) | {
471
+ if base_class_object. has_qname (
472
+ ModuleName :: type_checker_internals ( ) . as_str ( ) ,
473
+ "NamedTupleFallback" ,
474
+ ) {
475
+ Some ( NamedTupleMetadata {
476
+ elements : self . get_named_tuple_elements ( cls, errors) ,
477
+ } )
478
+ } else {
479
+ metadata. named_tuple_metadata ( ) . cloned ( )
480
+ }
481
+ } )
482
+ }
483
+
476
484
fn enum_metadata (
477
485
& self ,
478
486
cls : & Class ,
0 commit comments