From 79ba420faadc06add2395d4db31d1c21313352c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannes=20K=C3=A4ufler?= Date: Wed, 28 Dec 2022 22:10:53 +0100 Subject: [PATCH] Extract duplicated logic into method (#1428) --- src/printer.rs | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/src/printer.rs b/src/printer.rs index 554f33b884..70c382a328 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -135,17 +135,8 @@ impl<'a> Printer<'a> { SerializationFormat::Junit => { use quick_junit::{NonSuccessKind, Report, TestCase, TestCaseStatus, TestSuite}; - // Group by filename. - let mut grouped_messages = BTreeMap::default(); - for message in &diagnostics.messages { - grouped_messages - .entry(&message.filename) - .or_insert_with(Vec::new) - .push(message); - } - let mut report = Report::new("ruff"); - for (filename, messages) in grouped_messages { + for (filename, messages) in group_messages_by_filename(&diagnostics.messages) { let mut test_suite = TestSuite::new(filename); test_suite .extra @@ -184,16 +175,7 @@ impl<'a> Printer<'a> { self.post_text(diagnostics); } SerializationFormat::Grouped => { - // Group by filename. - let mut grouped_messages = BTreeMap::default(); - for message in &diagnostics.messages { - grouped_messages - .entry(&message.filename) - .or_insert_with(Vec::new) - .push(message); - } - - for (filename, messages) in grouped_messages { + for (filename, messages) in group_messages_by_filename(&diagnostics.messages) { // Compute the maximum number of digits in the row and column, for messages in // this file. let row_length = num_digits( @@ -304,6 +286,17 @@ impl<'a> Printer<'a> { } } +fn group_messages_by_filename(messages: &Vec) -> BTreeMap<&String, Vec<&Message>> { + let mut grouped_messages = BTreeMap::default(); + for message in messages { + grouped_messages + .entry(&message.filename) + .or_insert_with(Vec::new) + .push(message); + } + grouped_messages +} + fn num_digits(n: usize) -> usize { iterate(n, |&n| n / 10) .take_while(|&n| n > 0)