-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Open
Labels
G-performance-projectGoal: For issues and PRs related to the Clippy Performance ProjectGoal: For issues and PRs related to the Clippy Performance Project
Description
As the documentation lints got approved, Ty::intern
is now the public enemy number one. Today I analyzed all the occurrences of instantiate*
functions and all Ty::intern
s.
Here is a list of all those calls that exceed 65 while running our test suite. Not all of these can be optimized away, but I'm sure that the greatest culprits can be optimized greatly.
There were lots of lints that use the instantiation functions <50 times in the whole test suite, so I'm pretty sure that (almost) any function that uses them > e.g. 5k times can be heavily optimized away.
For Ty::intern
directly, only manual_abs_diff.rs::is_sub_expr
is directly optimizable (100% of that), but it "only" creates 131 new types.
For instantiations:
-
dereference.rs for_defined_ty
2.25k (calls) -
impl_hash_with_borrow_str_and_bytes.rs.html
- 2.66k .. -
only_used_in_recursion
- 2.66k .. -
mixed_read_write_in_expression
- 20.8k -
needless_borrows_for_generic_args
- 580 -
large_enum_variant
- 500 -
ty/mod.rs
2.15k -
from_over_into
- 241 -
needless_match
- 322 -
utils/src/lib.rs
- 9099 -
functions/results.rs
- 9660 -
functions/ref_option.rs
- 10488 -
mut_key.rs
- 22.8k (@blyxyas) -
non_copy_const
- 1001 -
methods/mod.rs
- 9361 -
self_named_constructors
- 929 -
useless_asref
- 191 -
path_buf_push_overwrite.rs
- 168 -
map_clone.rs
- 482 -
case_sensitive_file_extension_comparisons
- 68 -
unnecessary_to_owned
- 469 -
manual_ok_or
- 90 -
get_first
- 105 -
implicit_clone
107 -
iter_on_single_or_empty_collections
- 79 -
unit_return_expecting_ord
- 90630 (@blyxyas) -
mut_reference.rs
- 17.7k -
transmute_undefined_repr
- 349 -
needless_pass_by_ref_mut
- 80 -
use_self.rs
- 964 -
derive.rs
- 2.66k -
rest_pat_in_fully_bound_struct
- 89 -
large_const_arrays
- 589
Metadata
Metadata
Assignees
Labels
G-performance-projectGoal: For issues and PRs related to the Clippy Performance ProjectGoal: For issues and PRs related to the Clippy Performance Project