Closed
Description
Recently, I've run an experiment using SPEEDTEST
of, benchmarking each test file 100 times and getting the average time, then recollecting all that data into a single file containing average of milliseconds + number of lines in that test file (+ filename), and using a Python script (had to de-rust here, I can now see why people use Python for data science hehe :3)
So, now we have a list of the top 150 most consuming lints out there.
Milliseconds | Lines | File |
---|---|---|
108 | 11 | tests/ui/print_stderr.rs |
1012 | 103 | tests/ui/default_trait_access.rs |
1209 | 122 | tests/ui/shadow.rs |
825 | 82 | tests/ui/mut_mut.rs |
930 | 92 | tests/ui/almost_complete_range.rs |
912 | 89 | tests/ui/redundant_field_names.rs |
902 | 88 | tests/ui/min_ident_chars.rs |
205 | 20 | tests/ui/unnested_or_patterns2.rs |
205 | 20 | tests/ui/vec_resize_to_zero.rs |
205 | 20 | tests/ui/default_instead_of_iter_empty.rs |
206 | 20 | tests/ui/tabs_in_doc_comments.rs |
207 | 20 | tests/ui/ptr_offset_with_cast.rs |
306 | 29 | tests/ui/reversed_empty_ranges_fixable.rs |
203 | 19 | tests/ui/tests_outside_test_module.rs |
107 | 10 | tests/ui/double_neg.rs |
312 | 29 | tests/ui/skip_while_next.rs |
410 | 38 | tests/ui/iter_skip_next.rs |
206 | 19 | tests/ui/reversed_empty_ranges_unfixable.rs |
206 | 19 | tests/ui/string_add_assign.rs |
206 | 19 | tests/ui/zero_ptr_no_std.rs |
207 | 19 | tests/ui/floating_point_exp.rs |
1018 | 91 | tests/ui/equatable_if_let.rs |
213 | 19 | tests/ui/filter_map_next.rs |
852 | 75 | tests/ui/single_call_fn.rs |
205 | 18 | tests/ui/inline_fn_without_body.rs |
205 | 18 | tests/ui/writeln_empty_string.rs |
915 | 80 | tests/ui/manual_rem_euclid.rs |
206 | 18 | tests/ui/borrow_as_ptr.rs |
288 | 25 | tests/ui/bind_instead_of_map.rs |
105 | 9 | tests/ui/deprecated_old.rs |
247 | 21 | tests/ui/filter_map_next_fixable.rs |
106 | 9 | tests/ui/str_to_string.rs |
107 | 9 | tests/ui/builtin_type_shadow.rs |
1980 | 166 | tests/ui/format_args.rs |
920 | 77 | tests/ui/inconsistent_struct_constructor.rs |
205 | 17 | tests/ui/println_empty_string.rs |
956 | 79 | tests/ui/needless_return_with_question_mark.rs |
209 | 17 | tests/ui/floating_point_logbase.rs |
911 | 74 | tests/ui/iter_over_hash_type.rs |
137 | 11 | tests/ui/if_not_else_bittest.rs |
918 | 73 | tests/ui/borrow_deref_ref.rs |
954 | 75 | tests/ui/let_underscore_untyped.rs |
217 | 17 | tests/ui/filter_map_identity.rs |
205 | 16 | tests/ui/entry_btree.rs |
205 | 16 | tests/ui/is_digit_ascii_radix.rs |
205 | 16 | tests/ui/unchecked_duration_subtraction.rs |
206 | 16 | tests/ui/unknown_clippy_lints.rs |
206 | 16 | tests/ui/unused_rounding.rs |
207 | 16 | tests/ui/short_circuit_statement.rs |
104 | 8 | tests/ui/non_minimal_cfg2.rs |
406 | 31 | tests/ui/uninlined_format_args_panic.rs |
106 | 8 | tests/ui/exit3.rs |
214 | 16 | tests/ui/create_dir.rs |
108 | 8 | tests/ui/string_to_string.rs |
405 | 30 | tests/ui/thread_local_initializer_can_be_made_const.rs |
205 | 15 | tests/ui/int_plus_one.rs |
205 | 15 | tests/ui/len_zero_ranges.rs |
205 | 15 | tests/ui/reversed_empty_ranges_loops_unfixable.rs |
206 | 15 | tests/ui/map_collect_result_unit.rs |
206 | 15 | tests/ui/repeat_once.rs |
207 | 15 | tests/ui/flat_map_identity.rs |
207 | 15 | tests/ui/transmute_int_to_char.rs |
838 | 59 | tests/ui/single_range_in_vec_init.rs |
1213 | 85 | tests/ui/useless_attribute.rs |
229 | 16 | tests/ui/iter_next_loop.rs |
960 | 67 | tests/ui/needless_arbitrary_self_type.rs |
1195 | 81 | tests/ui/filter_map_bool_then.rs |
828 | 56 | tests/ui/manual_float_methods.rs |
224 | 15 | tests/ui/non_minimal_cfg.rs |
912 | 61 | tests/ui/ptr_cast_constness.rs |
105 | 7 | tests/ui/empty_enum_without_never_type.rs |
1108 | 73 | tests/ui/std_instead_of_core.rs |
914 | 59 | tests/ui/deref_addrof.rs |
1198 | 76 | tests/ui/literals.rs |
205 | 13 | tests/ui/floating_point_hypot.rs |
206 | 13 | tests/ui/needless_parens_on_range_literals.rs |
206 | 13 | tests/ui/suspicious_command_arg_space.rs |
206 | 13 | tests/ui/trailing_zeros.rs |
206 | 13 | tests/ui/zero_ptr.rs |
209 | 13 | tests/ui/needless_option_take.rs |
561 | 34 | tests/ui/find_map.rs |
216 | 13 | tests/ui/types.rs |
1419 | 85 | tests/ui/manual_assert.rs |
875 | 51 | tests/ui/empty_loop.rs |
206 | 12 | tests/ui/flat_map_option.rs |
920 | 53 | tests/ui/unneeded_wildcard_pattern.rs |
838 | 48 | tests/ui/arc_with_non_send_sync.rs |
1258 | 71 | tests/ui/impl.rs |
911 | 51 | tests/ui/reserve_after_initialization.rs |
890 | 49 | tests/ui/allow_attributes.rs |
820 | 44 | tests/ui/allow_attributes_without_reason.rs |
205 | 11 | tests/ui/track-diagnostics.rs |
914 | 49 | tests/ui/string_lit_chars_any.rs |
909 | 48 | tests/ui/mistyped_literal_suffix.rs |
211 | 11 | tests/ui/as_underscore.rs |
826 | 43 | tests/ui/unnecessary_fallible_conversions_unfixable.rs |
511 | 26 | tests/ui/manual_find.rs |
914 | 45 | tests/ui/manual_slice_size_calculation.rs |
204 | 10 | tests/ui/methods_fixable.rs |
874 | 42 | tests/ui/let_with_type_underscore.rs |
105 | 5 | tests/ui/missing_doc_crate_missing.rs |
105 | 5 | tests/ui/missing_inline_executable.rs |
993 | 46 | tests/ui/needless_arbitrary_self_type_unfixable.rs |
1037 | 48 | tests/ui/four_forward_slashes.rs |
1263 | 56 | tests/ui/ignored_unit_patterns.rs |
204 | 9 | tests/ui/unnecessary_self_imports.rs |
205 | 9 | tests/ui/to_digit_is_some.rs |
1162 | 51 | tests/ui/macro_use_imports_expect.rs |
206 | 9 | tests/ui/bytes_nth.rs |
921 | 39 | tests/ui/toplevel_ref_arg.rs |
900 | 38 | tests/ui/pub_with_shorthand.rs |
809 | 34 | tests/ui/unneeded_field_pattern.rs |
906 | 38 | tests/ui/pub_without_shorthand.rs |
1135 | 47 | tests/ui/patterns.rs |
2344 | 92 | tests/ui/format.rs |
205 | 8 | tests/ui/char_lit_as_u8_suggestions.rs |
206 | 8 | tests/ui/empty_enum.rs |
207 | 8 | tests/ui/to_string_in_format_args_incremental.rs |
208 | 8 | tests/ui/char_lit_as_u8.rs |
864 | 33 | tests/ui/needless_pub_self.rs |
1261 | 48 | tests/ui/macro_use_imports.rs |
106 | 4 | tests/ui/missing_doc_crate.rs |
107 | 4 | tests/ui/unknown_attribute.rs |
1110 | 41 | tests/ui/unseparated_prefix_literals.rs |
824 | 29 | tests/ui/string_add.rs |
205 | 7 | tests/ui/open_options_fixable.rs |
205 | 7 | tests/ui/path_buf_push_overwrite.rs |
326 | 11 | tests/ui/map_unit_fn.rs |
208 | 7 | tests/ui/option_map_or_err_ok.rs |
812 | 27 | tests/ui/toplevel_ref_arg_non_rustfix.rs |
850 | 28 | tests/ui/must_use_unit.rs |
403 | 13 | tests/ui/unwrap_or.rs |
817 | 26 | tests/ui/proc_macro.rs |
205 | 6 | tests/ui/four_forward_slashes_first_line.rs |
911 | 26 | tests/ui/redundant_at_rest_pattern.rs |
809 | 23 | tests/ui/as_conversions.rs |
106 | 3 | tests/ui/issue-3145.rs |
951 | 24 | tests/ui/iter_skip_zero.rs |
205 | 5 | tests/ui/obfuscated_if_else.rs |
211 | 5 | tests/ui/string_from_utf8_as_bytes.rs |
887 | 21 | tests/ui/unwrap.rs |
828 | 17 | tests/ui/option_env_unwrap.rs |
210 | 4 | tests/ui/author.rs |
1010 | 19 | tests/ui/range.rs |
1137 | 21 | tests/ui/expect.rs |
813 | 13 | tests/ui/deref_addrof_macro.rs |
809 | 12 | tests/ui/mem_replace_macro.rs |
3431 | 35 | tests/ui/large_const_arrays.rs |
205 | 2 | tests/ui/renamed_builtin_attr.rs |
827 | 6 | tests/ui/unnecessary_fallible_conversions.rs |
I'll do some inspection in these lints (primarily seeing which function calls are repeated between them) and then... Fix them (?)
If you want to optimize some of these lints, you're free to do so! (we probably won't collide in the same lint hehe :3)