Files
rust/library/core/tests
bors 6672c16afc Auto merge of #121204 - cuviper:flatten-one-shot, r=the8472
Specialize flattening iterators with only one inner item

For iterators like `Once` and `option::IntoIter` that only ever have a
single item at most, the front and back iterator states in `FlatMap` and
`Flatten` are a waste, as they're always consumed already. We can use
specialization for these types to simplify the iterator methods.

It's a somewhat common pattern to use `flatten()` for options and
results, even recommended by [multiple][1] [clippy][2] [lints][3]. The
implementation is more efficient with `filter_map`, as mentioned in
[clippy#9377], but this new specialization should close some of that
gap for existing code that flattens.

[1]: https://rust-lang.github.io/rust-clippy/master/#filter_map_identity
[2]: https://rust-lang.github.io/rust-clippy/master/#option_filter_map
[3]: https://rust-lang.github.io/rust-clippy/master/#result_filter_map
[clippy#9377]: https://github.com/rust-lang/rust-clippy/issues/9377
2024-02-17 20:18:54 +00:00
..
2024-01-11 15:04:48 +03:00
2024-01-11 15:04:48 +03:00
2024-02-07 16:46:28 +01:00
2023-12-10 10:56:22 +08:00
2022-10-08 11:48:53 +00:00
2022-07-13 17:07:41 -07:00
2023-06-29 01:55:03 +02:00
2023-04-26 02:10:22 -04:00
2023-04-16 11:38:52 +00:00
2024-01-11 15:04:48 +03:00
2023-12-10 10:56:22 +08:00
2023-05-30 08:00:10 -04:00
2023-04-16 11:38:52 +00:00
2023-04-16 11:38:52 +00:00
2024-01-11 15:04:48 +03:00
2023-07-03 14:05:55 +02:00
2024-02-15 08:09:42 +01:00
2024-02-07 10:42:01 +08:00
2023-07-12 21:38:55 -04:00
2023-11-11 22:54:07 +00:00
2021-11-21 19:10:39 -08:00
2024-01-11 15:04:48 +03:00
2022-09-27 19:23:52 +00:00
2020-07-27 19:51:13 -05:00
2023-11-26 08:50:39 -05:00
2022-08-20 12:49:20 -04:00
2022-12-30 14:00:42 +01:00
2023-01-02 10:33:23 -08:00
2024-01-24 14:24:57 +01:00
2020-07-27 19:51:13 -05:00
2022-07-08 21:18:15 +00:00
2022-06-27 13:30:44 -04:00