Skip to content

Commit 225063c

Browse files
rchen152facebook-github-bot
authored andcommitted
Move NamedTupleMetadata calculation into its own function
Reviewed By: stroxler Differential Revision: D80368504 fbshipit-source-id: 4fda6d2d437fae87f1408cd527cf2503060743b6
1 parent 2793842 commit 225063c

File tree

1 file changed

+23
-15
lines changed

1 file changed

+23
-15
lines changed

pyrefly/lib/alt/class/class_metadata.rs

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -130,21 +130,7 @@ impl<'a, Ans: LookupAnswer> AnswersSolver<'a, Ans> {
130130
.iter()
131131
.any(|(_, metadata)| metadata.has_base_any());
132132

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);
148134
if named_tuple_metadata.is_some() && bases_with_metadata.len() > 1 {
149135
self.error(
150136
errors,
@@ -473,6 +459,28 @@ impl<'a, Ans: LookupAnswer> AnswersSolver<'a, Ans> {
473459
protocol_metadata
474460
}
475461

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+
476484
fn enum_metadata(
477485
&self,
478486
cls: &Class,

0 commit comments

Comments
 (0)