1.52 clippy fixes (#267)

diff --git a/arrow/src/array/data.rs b/arrow/src/array/data.rs
index 7ae3858..9d5b0ee 100644
--- a/arrow/src/array/data.rs
+++ b/arrow/src/array/data.rs
@@ -500,6 +500,7 @@
     }
 
     #[inline]
+    #[allow(clippy::len_without_is_empty)]
     pub const fn len(mut self, n: usize) -> Self {
         self.len = n;
         self
diff --git a/arrow/src/compute/kernels/regexp.rs b/arrow/src/compute/kernels/regexp.rs
index 446d71d..5093dce 100644
--- a/arrow/src/compute/kernels/regexp.rs
+++ b/arrow/src/compute/kernels/regexp.rs
@@ -82,10 +82,8 @@
                     };
                     match re.captures(value) {
                         Some(caps) => {
-                            for m in caps.iter().skip(1) {
-                                if let Some(v) = m {
-                                    list_builder.values().append_value(v.as_str())?;
-                                }
+                            for m in caps.iter().skip(1).flatten() {
+                                list_builder.values().append_value(m.as_str())?;
                             }
                             list_builder.append(true)?
                         }
diff --git a/arrow/src/json/reader.rs b/arrow/src/json/reader.rs
index 31c496c..d0b9c19 100644
--- a/arrow/src/json/reader.rs
+++ b/arrow/src/json/reader.rs
@@ -654,7 +654,7 @@
             projection
                 .iter()
                 .map(|name| self.schema.column_with_name(name))
-                .filter_map(|c| c)
+                .flatten()
                 .map(|(_, field)| field.clone())
                 .collect()
         };
diff --git a/parquet/src/arrow/array_reader.rs b/parquet/src/arrow/array_reader.rs
index 943820f..d125cf6 100644
--- a/parquet/src/arrow/array_reader.rs
+++ b/parquet/src/arrow/array_reader.rs
@@ -1405,11 +1405,9 @@
             self.file_reader.clone(),
         )?);
 
-        let arrow_type: Option<ArrowType> = match self.get_arrow_field(&cur_type, context)
-        {
-            Some(f) => Some(f.data_type().clone()),
-            _ => None,
-        };
+        let arrow_type: Option<ArrowType> = self
+            .get_arrow_field(&cur_type, context)
+            .map(|f| f.data_type().clone());
 
         match cur_type.get_physical_type() {
             PhysicalType::BOOLEAN => Ok(Box::new(PrimitiveArrayReader::<BoolType>::new(
diff --git a/parquet/src/arrow/schema.rs b/parquet/src/arrow/schema.rs
index b15bb7e..6c04b70 100644
--- a/parquet/src/arrow/schema.rs
+++ b/parquet/src/arrow/schema.rs
@@ -172,7 +172,7 @@
             FieldType::Arrow(f) => Ok(Some(f)),
         })
         .collect::<Result<Vec<Option<Field>>>>()
-        .map(|result| result.into_iter().filter_map(|f| f).collect::<Vec<Field>>())
+        .map(|result| result.into_iter().flatten().collect::<Vec<Field>>())
         .map(|fields| Schema::new_with_metadata(fields, metadata))
 }
 
@@ -827,9 +827,7 @@
                 .iter()
                 .map(|field_ptr| self.clone_with_schema(field_ptr).to_field())
                 .collect::<Result<Vec<Option<Field>>>>()
-                .map(|result| {
-                    result.into_iter().filter_map(|f| f).collect::<Vec<Field>>()
-                })
+                .map(|result| result.into_iter().flatten().collect::<Vec<Field>>())
                 .map(|fields| {
                     if fields.is_empty() {
                         None
diff --git a/parquet/src/schema/parser.rs b/parquet/src/schema/parser.rs
index 3ce347c..41f6290 100644
--- a/parquet/src/schema/parser.rs
+++ b/parquet/src/schema/parser.rs
@@ -372,15 +372,15 @@
                                 )?;
                                 assert_token(self.tokenizer.next(), ")")?;
                                 logical = Some(LogicalType::DECIMAL(DecimalType {
-                                    precision,
                                     scale,
+                                    precision,
                                 }));
                                 converted = ConvertedType::from(logical.clone());
                             } else {
                                 scale = 0;
                                 logical = Some(LogicalType::DECIMAL(DecimalType {
-                                    precision,
                                     scale,
+                                    precision,
                                 }));
                                 converted = ConvertedType::from(logical.clone());
                             }
@@ -401,8 +401,8 @@
                                 )?;
                                 assert_token(self.tokenizer.next(), ")")?;
                                 logical = Some(LogicalType::TIME(TimeType {
-                                    unit,
                                     is_adjusted_to_u_t_c,
+                                    unit,
                                 }));
                                 converted = ConvertedType::from(logical.clone());
                             } else {
@@ -426,8 +426,8 @@
                                 )?;
                                 assert_token(self.tokenizer.next(), ")")?;
                                 logical = Some(LogicalType::TIMESTAMP(TimestampType {
-                                    unit,
                                     is_adjusted_to_u_t_c,
+                                    unit,
                                 }));
                                 converted = ConvertedType::from(logical.clone());
                             } else {