Skip to content

Commit ff0683d

Browse files
committed
Simplify iterators
1 parent 8e4c20d commit ff0683d

File tree

5 files changed

+22
-20
lines changed

5 files changed

+22
-20
lines changed

src/chains.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,7 @@ impl<'a> ChainFormatterShared<'a> {
550550
let almost_total = if extendable {
551551
prev_last_line_width
552552
} else {
553-
self.rewrites.iter().fold(0, |a, b| a + b.len())
553+
self.rewrites.iter().map(|a| a.len()).sum()
554554
} + last.tries;
555555
let one_line_budget = if self.child_count == 1 {
556556
shape.width

src/expr.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use std::borrow::Cow;
22
use std::cmp::min;
33

4+
use itertools::Itertools;
45
use syntax::parse::token::DelimToken;
56
use syntax::source_map::{BytePos, SourceMap, Span};
67
use syntax::{ast, ptr};
@@ -1246,8 +1247,7 @@ fn rewrite_string_lit(context: &RewriteContext<'_>, span: Span, shape: Shape) ->
12461247
if !context.config.format_strings() {
12471248
if string_lit
12481249
.lines()
1249-
.rev()
1250-
.skip(1)
1250+
.dropping_back(1)
12511251
.all(|line| line.ends_with('\\'))
12521252
{
12531253
let new_indent = shape.visual_indent(1).indent;

src/lists.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -577,13 +577,8 @@ pub fn extract_pre_comment(pre_snippet: &str) -> (Option<String>, ListItemCommen
577577
let has_block_comment = trimmed_pre_snippet.ends_with("*/");
578578
let has_single_line_comment = trimmed_pre_snippet.starts_with("//");
579579
if has_block_comment {
580-
let comment_end = pre_snippet.chars().rev().position(|c| c == '/').unwrap();
581-
if pre_snippet
582-
.chars()
583-
.rev()
584-
.take(comment_end + 1)
585-
.any(|c| c == '\n')
586-
{
580+
let comment_end = pre_snippet.rfind(|c| c == '/').unwrap();
581+
if pre_snippet[comment_end..].contains('\n') {
587582
(
588583
Some(trimmed_pre_snippet.to_owned()),
589584
ListItemCommentStyle::DifferentLine,

src/overflow.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
33
use std::cmp::min;
44

5+
use itertools::Itertools;
56
use syntax::parse::token::DelimToken;
67
use syntax::source_map::Span;
78
use syntax::{ast, ptr};
@@ -711,10 +712,14 @@ fn last_item_shape(
711712
if items.len() == 1 && !lists.get(0)?.is_nested_call() {
712713
return Some(shape);
713714
}
714-
let offset = items.iter().rev().skip(1).fold(0, |acc, i| {
715-
// 2 = ", "
716-
acc + 2 + i.inner_as_ref().len()
717-
});
715+
let offset = items
716+
.iter()
717+
.dropping_back(1)
718+
.map(|i| {
719+
// 2 = ", "
720+
2 + i.inner_as_ref().len()
721+
})
722+
.sum();
718723
Shape {
719724
width: min(args_max_width, shape.width),
720725
..shape

src/vertical.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
use std::cmp;
44

5+
use itertools::Itertools;
56
use syntax::ast;
67
use syntax::source_map::{BytePos, Span};
78

@@ -190,11 +191,8 @@ fn struct_field_prefix_max_min_width<T: AlignedItem>(
190191
}
191192
})
192193
})
193-
.fold(Some((0, ::std::usize::MAX)), |acc, len| match (acc, len) {
194-
(Some((max_len, min_len)), Some(len)) => {
195-
Some((cmp::max(max_len, len), cmp::min(min_len, len)))
196-
}
197-
_ => None,
194+
.fold_options((0, ::std::usize::MAX), |(max_len, min_len), len| {
195+
(cmp::max(max_len, len), cmp::min(min_len, len))
198196
})
199197
.unwrap_or((0, 0))
200198
}
@@ -274,7 +272,11 @@ fn group_aligned_items<T: AlignedItem>(
274272
.skip(1)
275273
.collect::<Vec<_>>()
276274
.join("\n");
277-
let spacings = if snippet.lines().rev().skip(1).any(|l| l.trim().is_empty()) {
275+
let spacings = if snippet
276+
.lines()
277+
.dropping_back(1)
278+
.any(|l| l.trim().is_empty())
279+
{
278280
"\n"
279281
} else {
280282
""

0 commit comments

Comments
 (0)