Implement IntoIterator for FStringElements (#11410)

A change which I lost somewhere when I force pushed in
https://github.com/astral-sh/ruff/pull/11400
This commit is contained in:
Dhruv Manilawala 2024-05-13 21:54:49 +05:30 committed by GitHub
parent ca99e9e2f0
commit c3c87e86ef
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 26 additions and 8 deletions

View file

@ -2814,7 +2814,7 @@ impl AstNode for ast::FStringFormatSpec {
where
V: PreorderVisitor<'a> + ?Sized,
{
for element in self.elements.iter() {
for element in &self.elements {
visitor.visit_f_string_element(element);
}
}
@ -2864,7 +2864,7 @@ impl AstNode for ast::FStringExpressionElement {
visitor.visit_expr(expression);
if let Some(format_spec) = format_spec {
for spec_part in format_spec.elements.iter() {
for spec_part in &format_spec.elements {
visitor.visit_f_string_element(spec_part);
}
}
@ -4800,7 +4800,7 @@ impl AstNode for ast::FString {
flags: _,
} = self;
for fstring_element in elements.iter() {
for fstring_element in elements {
visitor.visit_f_string_element(fstring_element);
}
}

View file

@ -1526,6 +1526,24 @@ impl From<Vec<FStringElement>> for FStringElements {
}
}
impl<'a> IntoIterator for &'a FStringElements {
type IntoIter = Iter<'a, FStringElement>;
type Item = &'a FStringElement;
fn into_iter(self) -> Self::IntoIter {
self.iter()
}
}
impl<'a> IntoIterator for &'a mut FStringElements {
type IntoIter = IterMut<'a, FStringElement>;
type Item = &'a mut FStringElement;
fn into_iter(self) -> Self::IntoIter {
self.iter_mut()
}
}
impl Deref for FStringElements {
type Target = Vec<FStringElement>;

View file

@ -739,7 +739,7 @@ pub fn walk_pattern_keyword<'a, V: Visitor<'a> + ?Sized>(
}
pub fn walk_f_string<'a, V: Visitor<'a> + ?Sized>(visitor: &mut V, f_string: &'a FString) {
for f_string_element in f_string.elements.iter() {
for f_string_element in &f_string.elements {
visitor.visit_f_string_element(f_string_element);
}
}
@ -756,7 +756,7 @@ pub fn walk_f_string_element<'a, V: Visitor<'a> + ?Sized>(
{
visitor.visit_expr(expression);
if let Some(format_spec) = format_spec {
for spec_element in format_spec.elements.iter() {
for spec_element in &format_spec.elements {
visitor.visit_f_string_element(spec_element);
}
}

View file

@ -746,7 +746,7 @@ pub fn walk_pattern_keyword<V: Transformer + ?Sized>(
}
pub fn walk_f_string<V: Transformer + ?Sized>(visitor: &V, f_string: &mut FString) {
for element in f_string.elements.iter_mut() {
for element in &mut f_string.elements {
visitor.visit_f_string_element(element);
}
}
@ -763,7 +763,7 @@ pub fn walk_f_string_element<V: Transformer + ?Sized>(
{
visitor.visit_expr(expression);
if let Some(format_spec) = format_spec {
for spec_element in format_spec.elements.iter_mut() {
for spec_element in &mut format_spec.elements {
visitor.visit_f_string_element(spec_element);
}
}