From 92e91b35578780a30fcec0feabc7dafc7e2a2dbc Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sun, 30 Jul 2023 21:03:28 -0700 Subject: [PATCH] Delete support for compilers without Iterator::try_for_each --- serde/build.rs | 6 ------ serde/src/ser/mod.rs | 34 ++++------------------------------ 2 files changed, 4 insertions(+), 36 deletions(-) diff --git a/serde/build.rs b/serde/build.rs index ecbb96a6..e76ac236 100644 --- a/serde/build.rs +++ b/serde/build.rs @@ -16,12 +16,6 @@ fn main() { let target = env::var("TARGET").unwrap(); let emscripten = target == "asmjs-unknown-emscripten" || target == "wasm32-unknown-emscripten"; - // Iterator::try_for_each stabilized in Rust 1.27: - // https://blog.rust-lang.org/2018/06/21/Rust-1.27.html#library-stabilizations - if minor < 27 { - println!("cargo:rustc-cfg=no_iterator_try_fold"); - } - // Non-zero integers stabilized in Rust 1.28: // https://blog.rust-lang.org/2018/08/02/Rust-1.28.html#library-stabilizations if minor < 28 { diff --git a/serde/src/ser/mod.rs b/serde/src/ser/mod.rs index 1aaa7570..d1a70ddb 100644 --- a/serde/src/ser/mod.rs +++ b/serde/src/ser/mod.rs @@ -1279,22 +1279,9 @@ pub trait Serializer: Sized { I: IntoIterator, ::Item: Serialize, { - let iter = iter.into_iter(); + let mut iter = iter.into_iter(); let mut serializer = try!(self.serialize_seq(iterator_len_hint(&iter))); - - #[cfg(not(no_iterator_try_fold))] - { - let mut iter = iter; - try!(iter.try_for_each(|item| serializer.serialize_element(&item))); - } - - #[cfg(no_iterator_try_fold)] - { - for item in iter { - try!(serializer.serialize_element(&item)); - } - } - + try!(iter.try_for_each(|item| serializer.serialize_element(&item))); serializer.end() } @@ -1330,22 +1317,9 @@ pub trait Serializer: Sized { V: Serialize, I: IntoIterator, { - let iter = iter.into_iter(); + let mut iter = iter.into_iter(); let mut serializer = try!(self.serialize_map(iterator_len_hint(&iter))); - - #[cfg(not(no_iterator_try_fold))] - { - let mut iter = iter; - try!(iter.try_for_each(|(key, value)| serializer.serialize_entry(&key, &value))); - } - - #[cfg(no_iterator_try_fold)] - { - for (key, value) in iter { - try!(serializer.serialize_entry(&key, &value)); - } - } - + try!(iter.try_for_each(|(key, value)| serializer.serialize_entry(&key, &value))); serializer.end() }