From 42efae59449b4dda7b310ea70e15d57d65550217 Mon Sep 17 00:00:00 2001 From: Tibo Delor Date: Sun, 10 Jun 2018 14:07:33 +1000 Subject: [PATCH 1/2] Clean Up code where last whitspace tracking isn't used --- src/lib.rs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 8d4cbb51b5a..35448a087a3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -517,7 +517,7 @@ fn format_lines( report: &FormatReport, ) { let mut trims = vec![]; - let mut last_wspace: Option = None; + let mut last_was_space = false; let mut line_len = 0; let mut cur_line = 1; let mut newline_count = 0; @@ -542,7 +542,7 @@ fn format_lines( } // Iterate over the chars in the file map. - for (kind, (b, c)) in CharClasses::new(text.chars().enumerate()) { + for (kind, c) in CharClasses::new(text.chars()) { if c == '\r' { continue; } @@ -563,7 +563,7 @@ fn format_lines( if c == '\n' { if format_line { // Check for (and record) trailing whitespace. - if let Some(..) = last_wspace { + if last_was_space { if should_report_error(config, kind, is_string, &ErrorKind::TrailingWhitespace) { trims.push((cur_line, kind, line_buffer.clone())); @@ -591,19 +591,13 @@ fn format_lines( cur_line += 1; format_line = config.file_lines().contains_line(name, cur_line); newline_count += 1; - last_wspace = None; + last_was_space = false; line_buffer.clear(); is_string = false; } else { newline_count = 0; line_len += if c == '\t' { config.tab_spaces() } else { 1 }; - if c.is_whitespace() { - if last_wspace.is_none() { - last_wspace = Some(b); - } - } else { - last_wspace = None; - } + last_was_space = c.is_whitespace(); line_buffer.push(c); if kind.is_string() { is_string = true; From 2e90c4314c97b84b8a134fc628cb8d9b1f28d3ad Mon Sep 17 00:00:00 2001 From: Tibo Delor Date: Sun, 10 Jun 2018 14:19:09 +1000 Subject: [PATCH 2/2] Stop delaying Trailing whitespace error reporting --- src/lib.rs | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 35448a087a3..c3bf8efb64e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -516,7 +516,6 @@ fn format_lines( config: &Config, report: &FormatReport, ) { - let mut trims = vec![]; let mut last_was_space = false; let mut line_len = 0; let mut cur_line = 1; @@ -565,8 +564,15 @@ fn format_lines( // Check for (and record) trailing whitespace. if last_was_space { if should_report_error(config, kind, is_string, &ErrorKind::TrailingWhitespace) + && !is_skipped_line(cur_line, skipped_range) { - trims.push((cur_line, kind, line_buffer.clone())); + errors.push(FormattingError { + line: cur_line, + kind: ErrorKind::TrailingWhitespace, + is_comment: kind.is_comment(), + is_string: kind.is_string(), + line_buffer: line_buffer.clone(), + }); } line_len -= 1; } @@ -611,18 +617,6 @@ fn format_lines( text.truncate(line); } - for &(l, kind, ref b) in &trims { - if !is_skipped_line(l, skipped_range) { - errors.push(FormattingError { - line: l, - kind: ErrorKind::TrailingWhitespace, - is_comment: kind.is_comment(), - is_string: kind.is_string(), - line_buffer: b.clone(), - }); - } - } - report.append(name.clone(), errors); }