From 0bb979bb852ca8889492f595245ec9f55d1c94e8 Mon Sep 17 00:00:00 2001 From: Marcus Klaas Date: Fri, 23 Oct 2015 20:36:38 +0200 Subject: Restore idempotence for chain formatting --- src/chains.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/chains.rs b/src/chains.rs index 4b6824a9073..ebe7aacf7cc 100644 --- a/src/chains.rs +++ b/src/chains.rs @@ -82,11 +82,11 @@ pub fn rewrite_chain(mut expr: &ast::Expr, let veto_single_line = if context.config.take_source_hints && subexpr_list.len() > 1 { // Look at the source code. Unless all chain elements start on the same // line, we won't consider putting them on a single line either. - let first_line_no = context.codemap.lookup_char_pos(subexpr_list[0].span.lo).line; + let last_span = context.snippet(mk_sp(subexpr_list[1].span.hi, total_span.hi)); + let first_span = context.snippet(subexpr_list[1].span); + let last_iter = last_span.chars().take_while(|c| c.is_whitespace()); - subexpr_list[1..] - .iter() - .any(|ex| context.codemap.lookup_char_pos(ex.span.hi).line != first_line_no) + first_span.chars().chain(last_iter).any(|c| c == '\n') } else { false }; -- cgit 1.4.1-3-g733a5