about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2020-12-27 15:44:45 +0100
committerMatthias Krüger <matthias.krueger@famsik.de>2021-01-23 02:18:11 +0100
commitd257101109e7ed6ca0a561a9e16d51167d2d92d7 (patch)
treeda8ae963f9a0ff2bea0473396091d74d9e938d61
parente56c9a52532d87a36da32fbde8066ecc34e67cd4 (diff)
downloadrust-d257101109e7ed6ca0a561a9e16d51167d2d92d7.tar.gz
rust-d257101109e7ed6ca0a561a9e16d51167d2d92d7.zip
make stats stable
-rw-r--r--clippy_dev/src/crater.rs7
-rw-r--r--mini-crater/logs.txt200
2 files changed, 103 insertions, 104 deletions
diff --git a/clippy_dev/src/crater.rs b/clippy_dev/src/crater.rs
index 7607e6b449f..b0e7cb70c89 100644
--- a/clippy_dev/src/crater.rs
+++ b/clippy_dev/src/crater.rs
@@ -234,10 +234,9 @@ pub fn run() {
 
     // collect into a tupled list for sorting
     let mut stats: Vec<(&&String, &usize)> = counter.iter().map(|(lint, count)| (lint, count)).collect();
-    // sort by number of lint occurences
-    stats.sort_by_key(|(_, count)| *count);
-    // biggest number first
-    stats.reverse();
+    // sort by "000{count} {clippy::lintname}"
+    // to not have a lint with 200 and 2 warnings take the same spot
+    stats.sort_by_key(|(lint, count)| format!("{:0>4}, {}", count, lint));
 
     let stats_formatted: String = stats
         .iter()
diff --git a/mini-crater/logs.txt b/mini-crater/logs.txt
index 18a0c2120ff..70b9baf0396 100644
--- a/mini-crater/logs.txt
+++ b/mini-crater/logs.txt
@@ -3059,9 +3059,9 @@ ripgrep/12.1.1/crates/core/search.rs:533:5 clippy::cast_precision_loss "casting
 ripgrep/12.1.1/crates/core/subject.rs:20:1 clippy::module_name_repetitions "item name starts with its containing module's name"
 ripgrep/12.1.1/crates/core/subject.rs:4:1 clippy::single_component_path_imports "this import is redundant"
 syn/1.0.54/build.rs:1:null clippy::cargo_common_metadata "package `syn` is missing `package.keywords` metadata"
-syn/1.0.54/build.rs:1:null clippy::multiple_crate_versions "could not read cargo metadata: failed to run `cargo metadata`:  Downloading crates ...\n  Downloaded syn-test-suite v0.0.0\nerror: failed to verify the checksum of `syn-test-suite v0.0.0`"
+syn/1.0.54/build.rs:1:null clippy::multiple_crate_versions "could not read cargo metadata: failed to run `cargo metadata`:     Blocking waiting for file lock on package cache\n    Blocking waiting for file lock on package cache\n    Blocking waiting for file lock on package cache\n Downloading crates ...\n  Downloaded ref-cast v1.0.5\n  Downloaded ref-cast-impl v1.0.5\n  Downloaded syn-test-suite v0.0.0\nerror: failed to verify the checksum of `syn-test-suite v0.0.0`"
 syn/1.0.54/src/lib.rs:1:null clippy::cargo_common_metadata "package `syn` is missing `package.keywords` metadata"
-syn/1.0.54/src/lib.rs:1:null clippy::multiple_crate_versions "could not read cargo metadata: failed to run `cargo metadata`:  Downloading crates ...\n  Downloaded syn-test-suite v0.0.0\nerror: failed to verify the checksum of `syn-test-suite v0.0.0`"
+syn/1.0.54/src/lib.rs:1:null clippy::multiple_crate_versions "could not read cargo metadata: failed to run `cargo metadata`:  Downloading crates ...\n  Downloaded openssl-sys v0.9.60\n  Downloaded syn-test-suite v0.0.0\nerror: failed to verify the checksum of `syn-test-suite v0.0.0`"
 syn/1.0.54/src/lit.rs:1397:40 clippy::redundant_else "redundant else block"
 syn/1.0.54/src/lit.rs:1405:28 clippy::redundant_else "redundant else block"
 syn/1.0.54/src/lit.rs:1485:32 clippy::redundant_else "redundant else block"
@@ -3253,109 +3253,109 @@ xsv/0.13.0/src/util.rs:90:1 clippy::needless_lifetimes "explicit lifetimes given
 
 Stats
 
-clippy::must_use_candidate 552
-clippy::unreadable_literal 365
-clippy::missing_errors_doc 338
-clippy::doc_markdown 178
-clippy::wildcard_imports 160
-clippy::items_after_statements 139
-clippy::module_name_repetitions 137
-clippy::redundant_closure_for_method_calls 135
-clippy::redundant_field_names 111
-clippy::cast_possible_truncation 91
-clippy::similar_names 79
-clippy::match_same_arms 64
-clippy::inline_always 59
-clippy::single_match_else 45
-clippy::unseparated_literal_suffix 41
-clippy::enum_glob_use 40
-clippy::cast_precision_loss 35
-clippy::if_not_else 35
-clippy::filter_map 31
-clippy::too_many_lines 31
-clippy::redundant_else 29
-clippy::trivially_copy_pass_by_ref 26
-clippy::cast_lossless 23
-clippy::redundant_static_lifetimes 21
-clippy::struct_excessive_bools 20
-clippy::map_unwrap_or 20
-clippy::unusual_byte_groupings 19
-clippy::unused_self 19
-clippy::cast_possible_wrap 19
-clippy::cast_sign_loss 19
-clippy::unnecessary_wraps 19
-clippy::needless_pass_by_value 18
-clippy::default_trait_access 16
-clippy::linkedlist 14
-clippy::single_char_add_str 14
-clippy::shadow_unrelated 13
-clippy::cargo_common_metadata 13
-clippy::option_if_let_else 12
-clippy::needless_lifetimes 12
-clippy::multiple_crate_versions 11
-clippy::needless_doctest_main 10
-clippy::missing_safety_doc 10
-clippy::manual_range_contains 10
-clippy::match_wildcard_for_single_variants 10
-clippy::find_map 9
-clippy::wrong_self_convention 8
-clippy::invalid_upcast_comparisons 8
-clippy::option_map_unit_fn 7
-clippy::map_clone 7
-clippy::explicit_into_iter_loop 7
-clippy::range_plus_one 7
-clippy::manual_strip 6
-clippy::non_ascii_literal 6
-clippy::single_component_path_imports 6
-clippy::field_reassign_with_default 5
-clippy::new_without_default 5
-clippy::len_without_is_empty 5
-clippy::identity_op 5
-clippy::needless_return 5
-clippy::empty_enum 5
-clippy::match_like_matches_macro 5
-clippy::explicit_iter_loop 5
-clippy::too_many_arguments 4
-clippy::let_underscore_drop 4
-clippy::if_same_then_else 4
-clippy::filter_map_next 3
-clippy::zero_ptr 3
-clippy::fn_params_excessive_bools 3
-clippy::mut_mut 3
-clippy::manual_non_exhaustive 2
-clippy::comparison_to_empty 2
-clippy::question_mark 2
-clippy::redundant_pattern_matching 2
-clippy::write_with_newline 2
-clippy::unnecessary_cast 2
-clippy::option_option 2
-clippy::match_on_vec_items 2
-clippy::type_complexity 2
-clippy::len_zero 2
-clippy::expl_impl_clone_on_copy 2
-clippy::option_as_ref_deref 2
-clippy::unused_unit 2
-clippy::derive_hash_xor_eq 2
-clippy::while_let_on_iterator 1
 clippy::clone_on_copy 1
-clippy::same_item_push 1
+clippy::collapsible_if 1
+clippy::comparison_chain 1
+clippy::expect_fun_call 1
+clippy::explicit_deref_methods 1
 clippy::from_iter_instead_of_collect 1
+clippy::from_over_into 1
+clippy::int_plus_one 1
+clippy::manual_saturating_arithmetic 1
+clippy::mem_replace_with_default 1
+clippy::nonminimal_bool 1
 clippy::or_fun_call 1
-clippy::pub_enum_variant_names 1
-clippy::used_underscore_binding 1
 clippy::precedence 1
+clippy::pub_enum_variant_names 1
 clippy::redundant_clone 1
-clippy::collapsible_if 1
+clippy::same_item_push 1
+clippy::should_implement_trait 1
 clippy::stable_sort_primitive 1
 clippy::unit_arg 1
-clippy::nonminimal_bool 1
-clippy::comparison_chain 1
-clippy::mem_replace_with_default 1
-clippy::manual_saturating_arithmetic 1
-clippy::expect_fun_call 1
-clippy::should_implement_trait 1
-clippy::verbose_bit_mask 1
-clippy::int_plus_one 1
 clippy::unnecessary_lazy_evaluations 1
-clippy::from_over_into 1
-clippy::explicit_deref_methods 1
+clippy::used_underscore_binding 1
+clippy::verbose_bit_mask 1
+clippy::while_let_on_iterator 1
+clippy::comparison_to_empty 2
+clippy::derive_hash_xor_eq 2
+clippy::expl_impl_clone_on_copy 2
+clippy::len_zero 2
+clippy::manual_non_exhaustive 2
+clippy::match_on_vec_items 2
+clippy::option_as_ref_deref 2
+clippy::option_option 2
+clippy::question_mark 2
+clippy::redundant_pattern_matching 2
+clippy::type_complexity 2
+clippy::unnecessary_cast 2
+clippy::unused_unit 2
+clippy::write_with_newline 2
+clippy::filter_map_next 3
+clippy::fn_params_excessive_bools 3
+clippy::mut_mut 3
+clippy::zero_ptr 3
+clippy::if_same_then_else 4
+clippy::let_underscore_drop 4
+clippy::too_many_arguments 4
+clippy::empty_enum 5
+clippy::explicit_iter_loop 5
+clippy::field_reassign_with_default 5
+clippy::identity_op 5
+clippy::len_without_is_empty 5
+clippy::match_like_matches_macro 5
+clippy::needless_return 5
+clippy::new_without_default 5
+clippy::manual_strip 6
+clippy::non_ascii_literal 6
+clippy::single_component_path_imports 6
+clippy::explicit_into_iter_loop 7
+clippy::map_clone 7
+clippy::option_map_unit_fn 7
+clippy::range_plus_one 7
+clippy::invalid_upcast_comparisons 8
+clippy::wrong_self_convention 8
+clippy::find_map 9
+clippy::manual_range_contains 10
+clippy::match_wildcard_for_single_variants 10
+clippy::missing_safety_doc 10
+clippy::needless_doctest_main 10
+clippy::multiple_crate_versions 11
+clippy::needless_lifetimes 12
+clippy::option_if_let_else 12
+clippy::cargo_common_metadata 13
+clippy::shadow_unrelated 13
+clippy::linkedlist 14
+clippy::single_char_add_str 14
+clippy::default_trait_access 16
+clippy::needless_pass_by_value 18
+clippy::cast_possible_wrap 19
+clippy::cast_sign_loss 19
+clippy::unnecessary_wraps 19
+clippy::unused_self 19
+clippy::unusual_byte_groupings 19
+clippy::map_unwrap_or 20
+clippy::struct_excessive_bools 20
+clippy::redundant_static_lifetimes 21
+clippy::cast_lossless 23
+clippy::trivially_copy_pass_by_ref 26
+clippy::redundant_else 29
+clippy::filter_map 31
+clippy::too_many_lines 31
+clippy::cast_precision_loss 35
+clippy::if_not_else 35
+clippy::enum_glob_use 40
+clippy::unseparated_literal_suffix 41
+clippy::single_match_else 45
+clippy::inline_always 59
+clippy::match_same_arms 64
+clippy::similar_names 79
+clippy::cast_possible_truncation 91
+clippy::redundant_field_names 111
+clippy::redundant_closure_for_method_calls 135
+clippy::module_name_repetitions 137
+clippy::items_after_statements 139
+clippy::wildcard_imports 160
+clippy::doc_markdown 178
+clippy::missing_errors_doc 338
+clippy::unreadable_literal 365
+clippy::must_use_candidate 552