#lint #clippy #io #style #projects #positive #suppressed

noisy-clippy

crates.io 上每个 Clippy 检查项被抑制的频率是多少

1 个不稳定版本

0.0.0 2021 年 9 月 13 日

#24 in #positive

MIT/Apache

2KB

crates.io 上每个 Clippy 检查项被抑制的频率是多少

在我的经验中,Clippy 最严重的缺陷是默认启用的低信号检查项,它们不值得解决,通常需要被抑制。

我在许多 Rust 项目中使用了 Clippy,因此我已经对哪些检查项是错误的、有缺陷的,或者在现实世界代码中的真正阳性率过低有很好的了解。我的一项明显爱好是从 Clippy 中删除这样的检查项或将它们从默认启用的检查项组(opt-out 检查项)降级到 pedanticrestriction(opt-in)组。

此存储库包含一个用于分析更大语料库中抑制的检查项的脚本:所有 crates.io 的内容。对于每个 Clippy 检查项,程序会计算它在全局(模块范围)或局部(检查项被触发的单个位置)被抑制的次数。

在下表中,我建议您关注 styleperf 检查项。高度抑制的 style 检查项表明社区已经明确决定 Clippy 对风格的看法是错误的。高度抑制的 perf 检查项表明社区认为为了可疑的所谓性能而使代码更加晦涩并不值得。我认为删除或降级许多这些检查项是明智的。


结果(更新于 2023 年 2 月)

局部 全局 检查项名称 类别
4181 979 too_many_arguments complexity
2888 1149 type_complexity complexity
3878 98 unnecessary_wraps complexity pedantic
3421 30 needless_borrow style
3104 63 useless_conversion complexity
1103 955 upper_case_acronyms style
1257 798 large_enum_variant perf
1882 75 let_and_return style
726 872 module_name_repetitions pedantic
1160 347 cast_possible_truncation pedantic
912 471 wrong_self_convention style
288 970 all unknown
792 379 many_single_char_names style pedantic
265 894 redundant_clone perf
365 793 module_inception style
567 421 should_implement_trait style
734 205 cognitive_complexity complexity nursery
650 272 too_many_lines pedantic
352 562 unreadable_literal style pedantic
624 226 float_cmp correctness pedantic
604 243 cast_sign_loss pedantic
522 317 new_without_default style
626 198 needless_pass_by_value style pedantic
311 467 derive_partial_eq_without_eq style nursery
517 248 unwrap_used restriction
675 86 cast_ptr_alignment correctness pedantic
365 383 missing_safety_doc style
374 323 ptr_arg style
563 116 len_without_is_empty style
534 123 trivially_copy_pass_by_ref perf pedantic
72 549 let_unit_value style
389 207 missing_panics_doc pedantic
70 517 needless_return style
241 342 integer_arithmetic restriction
460 117 needless_range_loop style
488 84 new_ret_no_self style
130 436 missing_errors_doc pedantic
479 83 collapsible_if style
455 88 enum_variant_names style
384 156 cast_precision_loss pedantic
435 103 missing_const_for_fn nursery
320 189 cast_possible_wrap pedantic
102 371 must_use_candidate pedantic
315 144 identity_op complexity
31 403 disallowed_names style
175 250 similar_names pedantic
387 33 nonminimal_bool complexity
302 112 redundant_closure style
35 372 vec_init_then_push perf
44 354 needless_doctest_main style
297 90 from_over_into style
356 29 bool_comparison complexity
152 233 无损失铸件 pedantic
363 19 冗余模式匹配 style
368 14 不必要的延迟评估 style
311 67 可疑的算术实现 可疑的
251 122 单匹配 style
268 103 不必要的生命周期 complexity
178 188 使用self nursery
338 8 比较空 style
323 18 不必要的收集 perf 婴儿护理
97 226 通配符导入 pedantic
267 55 未使用self pedantic
80 239 文档Markdown pedantic
236 64 索引切片 restriction
206 86 匹配相同分支 pedantic
228 56 eq运算符 正确性
198 77 比较链 style
143 127 过度的精度 style
118 148 近似常数 正确性
259 6 从引用中获取mut 正确性
218 35 手动哈希与手动eq 正确性
125 126 option_if_let_else pedantic 婴儿护理
184 65 not_unsafe_ptr_arg_deref 正确性
177 71 expect_used restriction
164 78 结构过多的bools pedantic
186 37 通过cast进行ptr偏移 complexity
115 100 与宏匹配的match style
160 54 在拷贝上克隆 complexity
173 41 if_same_then_else 正确性
149 57 不必要的cast complexity
86 117 always内联 pedantic
153 47 详尽的struct restriction
150 45 result_unit_err style
128 65 op_ref style
80 107 私有项目中的缺失文档 restriction
168 14 可导出的实现 complexity
83 97 相关阴影 restriction
101 78 可折叠的else if style
155 23 borrowed_box complexity
37 135 非ASCII字面量 pedantic 限制
55 116 手动范围包含 style
0 171 多个crate版本 cargo
80 90 bool断言比较 style
127 42 常量上的断言 style
111 58 panic restriction
137 31 声明内部可变const correctness 样式
75 91 单元参数 complexity
123 42 as转换 restriction
123 41 mutex_atomic perf 限制
80 81 在send类型中的非send字段 nursery
122 35 详尽的枚举 restriction
27 129 默认特质访问 pedantic
47 108 未使用的单元 style
126 28 单绑定匹配 complexity
86 65 result_large_err perf
104 42 never循环 正确性
69 74 使用默认值的字段重新赋值 style
62 80 使用下划线绑定 pedantic
60 80 枚举全局使用 pedantic
37 95 单匹配else pedantic
75 57 不寻常的字节分组 style
37 94 赋值运算符模式 style
11 120 在文档注释中的制表符 style
35 94 print_stdout restriction
80 47 未记录的不安全块 restriction
29 95 冗余字段名称 style
71 52 在公共项目中的缺失内联 restriction
99 24 可变键类型 可疑的
42 81 冗余pub_crate nursery
93 30 反转空范围 正确性
32 90 语句之后的项 pedantic
109 12 映射条目 perf
72 48 or函数调用 nursery
72 47 将ptr转换为ptr的transmute pedantic
108 9 未初始化的假设初始化 正确性
67 48 可疑的op_assign实现 可疑的
56 59 在界限中的类型重复 nursery
109 6 未初始化的vec 正确性
79 34 if条件中的块 style
32 72 if_not_else pedantic
0 104 隐式返回 restriction
65 37 隐式hasher style pedantic
65 37 零前缀字面量 complexity
18 82 冗余静态生命周期 style
72 25 空循环 可疑的
12 84 未分隔的字面量后缀 restriction
55 37 手动映射 style
74 17 option_option complexity pedantic
62 29 范围加一 complexity pedantic
81 10 while_let_on_iterator style
86 4 无效果 complexity
33 56 pedantic unknown
25 62 匹配bool style pedantic
46 41 不必要的更新 complexity
78 8 erasing运算符 正确性
59 27 不一致的数字分组 style
33 52 无用的transmute complexity
68 14 共享代码的分支 complexity nursery
41 41 scrutinee的显著性下降 suspicious 婴儿护理
75 6 同一项目推送 style
65 15 boxed_local perf
50 29 vec_box complexity
6 72 未内联的格式参数 pedantic
50 26 过时的cfg_attr complexity
69 6 可疑的操作分组 style nursery
65 10 不必要的unwrap complexity
27 46 borrow_interior_mutable_const correctness 样式
27 45 len_zero style
55 14 问号 style
41 28 通配符枚举匹配分支 restriction
61 7 荒谬的极端比较 正确性
34 33 额外的未使用生命周期 complexity
27 40 未知clippy_lints unknown
52 15 不必要的操作 complexity
35 29 fallible_impl_from nursery
47 17 表达式中的读写混合 suspicious 限制
41 23 未使用的异步 pedantic
47 16 rc_buffer perf 限制
61 1 cast_ref_to_mut 正确性
29 33 可疑的else格式化 可疑的
21 40 浮点算术 restriction
48 13 match_wild_err_arm style pedantic
47 14 mut_mut pedantic
22 39 单字符模式 perf
0 60 blanket_clippy_restriction_lints 可疑的
18 42 不必要的闭包调用 complexity
16 44 shadow_reuse restriction
39 20 整数除法 pedantic 限制
25 33 如果无返回则分号 pedantic
17 40 return_self_not_must_use pedantic
31 24 inherent_to_string style
26 29 带有换行符的写入 style
51 3 无用的属性 正确性
19 34 print_stderr restriction
37 15 unit_cmp 正确性
36 15 complexity unknown
37 13 或模式中的通配符 complexity
41 8 cmp_owned perf
2 47 dbg_macro restriction
28 21 匹配通配符单变体 pedantic
8 41 单组件路径导入 style
22 26 带有if的bool_to_int pedantic
28 20 手动非详尽 style
1 47 非标准宏括号 style nursery
34 13 不必要的bool complexity
41 6 仅用于递归 complexity
36 10 clone_double_ref 正确性
29 17 future_not_send nursery
27 19 map_err_ignore restriction
13 33 string_lit_as_bytes style nursery
34 12 简单的正则表达式 style nursery
23 23 未到达的 restriction
16 29 let_underscore_drop unknown
25 20 useless_let_if_seq style nursery
42 2 derive_ord_xor_partial_ord 正确性
39 5 冗余分配 perf
43 0 手动扁平化 complexity
33 10 partialeq_ne_impl complexity
22 21 冗余闭包方法调用 pedantic
6 36 else_if_without_else restriction
34 8 界限中的特质重复 nursery
13 29 嵌套或模式 complexity pedantic
34 8 vtable地址比较 正确性
15 26 模式类型不匹配 restriction
12 29 suboptimal_flops nursery
20 20 assertions_on_result_states style 限制
26 14 iter_nth_zero style
5 35 冗余else pedantic
23 16 不必要的late_init style
15 23 手动断言 pedantic
25 13 在部分ord上的neg比较运算符 complexity
13 25 在结果fn中的panic restriction
3 35 优先级 complexity
12 26 不必要的字段模式 restriction
24 13 deref_addrof complexity
17 20 ptr_as_ptr pedantic
16 21 use_debug restriction
29 8 while_let_loop complexity
11 25 pub_enum_variant_names 已弃用
33 3 unnecessary_to_owned perf
25 10 map_clone style
18 16 empty_enum pedantic
11 23 option_map_unit_fn complexity
31 3 ref_option_ref pedantic
18 15 manual_strip complexity
23 10 unused_io_amount 正确性
5 27 style unknown
19 13 未实现 restriction
31 0 drop_bounds unknown
8 23 expl_impl_clone_on_copy pedantic
18 13 int_plus_one complexity
18 13 just_underscores_and_digits style
10 21 toplevel_ref_arg style
26 4 collapsible_match style
23 7 explicit_counter_loop complexity
28 2 needless_option_as_deref complexity
29 1 neg_multiply style
28 2 stable_sort_primitive pedantic
22 7 await_holding_lock correctness suspicious
25 4 box_collection perf
18 11 expect_fun_call perf
27 2 into_iter_on_ref style
9 20 try_err style 限制
21 8 unsafe_derive_deserialize pedantic
0 28 cargo_common_metadata cargo
18 10 drop_copy 正确性
15 13 forget_copy 正确性
21 7 format_push_string perf 限制
14 13 filter_map 已弃用
26 1 format_in_format_args perf
8 19 match_ref_pats style
12 15 nursery unknown
16 10 explicit_auto_deref complexity
21 5 mem_forget restriction
14 12 print_literal style
11 15 useless_format complexity
8 17 checked_conversions pedantic
2 23 clone_on_ref_ptr restriction
14 11 manual_async_fn style
13 11 borrow_as_ptr pedantic
0 24 default_numeric_fallback restriction
11 13 needless_question_mark complexity
16 8 redundant_slicing complexity
4 20 renamed_and_removed_lints unknown
21 3 self_named_constructors style
13 11 suspicious_map 可疑的
20 4 unwrap_in_result restriction
4 19 await_holding_refcell_ref correctness suspicious
11 12 restriction unknown
3 19 map_unwrap_or pedantic
22 0 needless_continue pedantic
9 13 no_effect_underscore_binding pedantic
12 10 transmute_ptr_to_ref complexity
6 15 from_iter_instead_of_collect pedantic
3 18 match_on_vec_items pedantic
3 18 shadow_same restriction
14 7 unnecessary_mut_passed style
2 18 inconsistent_struct_constructor pedantic
20 0 let_underscore_future 可疑的
5 15 std_instead_of_core restriction
15 4 manual_swap complexity
1 18 mod_module_files restriction
4 15 verbose_bit_mask style pedantic
13 5 arithmetic_side_effects restriction
13 5 diverging_sub_expression complexity
11 7 exit restriction
18 0 inherent_to_string_shadow_display 正确性
11 7 option_as_ref_deref complexity
15 2 case_sensitive_file_extension_comparisons pedantic
14 3 drop_ref 正确性
11 6 from_str_radix_10 style
10 7 iter_not_returning_iterator pedantic
16 1 match_overlapping_arm style
4 13 single_char_lifetime_names restriction
10 6 double_parens complexity
3 13 forget_non_drop 可疑的
6 10 multiple_inherent_impl restriction
0 16 pub_use restriction
3 12 borrow_deref_ref complexity
12 3 explicit_deref_methods pedantic
9 6 todo restriction
11 4 write_literal style
12 3 zero_sized_map_values pedantic
10 4 manual_filter_map complexity
12 2 useless_vec perf
8 6 zero_ptr style
13 0 async_yields_async 正确性
9 4 box_default perf
12 1 crate_in_macro_def 可疑的
7 6 drop_non_drop 可疑的
2 11 explicit_iter_loop pedantic
6 7 get_first style
8 5 manual_clamp complexity nursery
13 0 manual_split_once complexity
0 13 separated_literal_suffix restriction
11 2 single_element_loop complexity
7 5 iter_cloned_collect style
8 4 manual_memcpy perf
12 0 modulo_one 正确性
11 0 arithmetic unknown
10 1 string_slice restriction
5 5 cargo unknown
10 0 filter_next complexity
9 1 fn_address_comparisons 正确性
9 1 forget_ref 正确性
2 8 mem_replace_with_default style
7 3 perf unknown
7 3 transmute_float_to_int complexity
9 1 unnecessary_filter_map complexity
10 0 unnecessary_sort_by complexity
0 10 wildcard_dependencies cargo
8 1 bind_instead_of_map complexity
6 3 cmp_null style
8 1 debug_assert_with_mut_call nursery
1 8 decimal_literal_representation restriction
4 5 enum_clike_unportable_variant 正确性
8 1 explicit_write complexity
5 4 fn_params_excessive_bools pedantic
7 2 for_loops_over_fallibles unknown
4 5 mismatching_type_param_order pedantic
7 2 overly_complex_bool_expr 正确性
0 9 self_named_module_files restriction
8 1 size_of_in_element_count 正确性
8 1 transmute_undefined_repr correctness nursery
7 2 while_immutable_condition 正确性
8 0 disallowed_methods style
4 4 disallowed_types style
8 0 fn_to_numeric_cast style
4 4 manual_unwrap_or complexity
7 1 missing_trait_methods restriction
8 0 needless_match complexity
8 0 read_zero_byte_vec 正确性
8 0 unsound_collection_transmute 正确性
4 3 clippy unknown
5 2 copy_iterator pedantic
4 3 double_neg style
2 5 if_then_panic unknown
7 0 infallible_destructuring_match style
3 4 let_underscore_must_use restriction
7 0 mut_range_bound 可疑的
0 7 negative_feature_names cargo
0 7 redundant_feature_names cargo
1 6 unicode_not_nfc pedantic
5 1 bad_bit_mask 正确性
6 0 fn_to_numeric_cast_with_truncation style
3 3 iter_with_drain perf 婴儿护理
5 1 linkedlist pedantic
1 5 map_flatten complexity
5 1 map_identity complexity
6 0 mem_discriminant_non_enum unknown
4 2 print_in_format_impl 可疑的
5 1 result_map_unit_fn complexity
2 4 to_string_in_format_args perf
2 3 doc_link_with_quotes pedantic
2 3 double_must_use style
2 3 empty_line_after_outer_attr nursery
1 4 equatable_if_let nursery
4 1 get_unwrap restriction
4 1 ifs_same_cond 正确性
4 1 into_iter_on_array unknown
4 1 iter_overeager_cloned perf
2 3 manual_find complexity
0 5 manual_let_else pedantic
5 0 match_result_ok style
3 2 match_str_case_mismatch 正确性
5 0 maybe_infinite_iter pedantic
0 5 modulo_arithmetic restriction
4 1 mut_mutex_lock style
5 0 naive_bytecount pedantic
0 5 needless_arbitrary_self_type complexity
3 2 panicking_unwrap 正确性
1 4 possible_missing_comma 正确性
0 5 std_instead_of_alloc restriction
5 0 zero_divided_by_zero complexity
4 0 cmp_nan 正确性
2 2 duplicate_mod 可疑的
0 4 find_map 已弃用
4 0 for_kv_map style
2 2 inefficient_to_string perf pedantic
2 2 invalid_regex 正确性
3 1 iter_count complexity
4 0 manual_filter complexity
0 4 mismatched_target_os 正确性
4 0 misnamed_getters 可疑的
2 2 needless_for_each pedantic
3 1 八进制转义 可疑的
2 2 范围减一 pedantic
3 1 递归格式实现 正确性
2 2 搜索是某些值 complexity
4 0 短路语句 complexity
3 1 单字符加字符串 style
0 4 字符串转字符串 restriction
3 1 将整数转换为字符 complexity
3 1 不必要的折叠 style
3 1 未使用的 peekable nursery
3 0 从原始部分转换为切片 可疑的
1 2 克隆而不是复制 pedantic
1 2 交叉指针转换 complexity
3 0 已弃用 unknown
0 3 废弃的 semver 正确性
0 3 浮点数比较常量 restriction
3 0 隐式饱和减法 style
0 3 初始化编号字段 style
2 1 不可见字符 正确性
3 0 迭代跳过下一个 style
2 1 错误类型字面量后缀 正确性
2 1 带有换行符的打印 style
2 1 if 条件中的相同函数 pedantic
2 1 跳过直到下一个 complexity
0 3 字符串相加 restriction
3 0 将字节转换为字符串 complexity
3 0 不必要的安全文档 style 限制
0 3 从名称中移除 unsafe style
3 0 无用的 asref complexity
0 2 分配而不是核心 restriction
1 1 内建类型阴影 style
2 0 字符字面量为 u8 complexity
1 1 可折叠的字符串替换 perf
1 1 空结构体带有括号 restriction
0 2 显式 into_iter 循环 pedantic
2 0 浮点数相等没有绝对值 可疑的
2 0 if let 冗余模式匹配 已弃用
2 0 if-then-some-else-none restriction
2 0 无效的空指针使用 正确性
1 1 是 ASCII 十进制基数 style
2 0 大堆栈数组 pedantic
2 0 let 下划线锁定 正确性
2 0 手动位 style
1 1 匹配为 ref complexity
0 2 大小写混合的十六进制字面量 style
2 0 不必要的 splitn complexity
0 2 非大写全局变量 unknown
2 0 ok_expect style
2 0 option_env_unwrap 正确性
2 0 越界索引 正确性
1 1 冗余模式 style
0 2 慢速向量初始化 perf
2 0 字符串扩展字符 style
0 2 将整数转换为布尔值 complexity
1 1 将整数转换为浮点数 complexity
2 0 转换 null 正确性
2 0 单元返回期望 ord 正确性
0 2 unwrap_or_else_default style
0 1 几乎交换 正确性
1 0 as 转换 unknown
1 0 as_ptr_cast_mut nursery
1 0 将 abs 转换为无符号 可疑的
1 0 将切片大小不同 正确性
0 1 clippy 复杂性 unknown
1 0 双重比较 complexity
1 0 从切片扩展 已弃用
1 0 使用 drain 扩展 perf
1 0 文件类型是文件 restriction
1 0 filter_map_identity complexity
1 0 fn_null_check 正确性
1 0 隐式克隆 pedantic
1 0 无限迭代 正确性
0 1 inline_asm_x86_intel_syntax restriction
1 0 inline_fn_without_body 正确性
1 0 inspect_for_each complexity
1 0 无效的 ref unknown
1 0 未检查中的无效 UTF-8 正确性
1 0 iter_nth perf
0 1 大数字组 style pedantic
1 0 主递归 style
1 0 手动 find_map complexity
0 1 手动饱和算术 style
1 0 手动字符串 new pedantic
1 0 将选项替换为 None 的内存替换 style
1 0 min_max 正确性
0 1 重构错误赋操作符 可疑的
0 1 缺少文档 unknown
0 1 必须使用单元 style
0 1 不必要的借用引用 complexity
0 1 非八进制 Unix 权限 正确性
1 0 混淆的 if-else style
1 0 option_map_or_none style
1 0 panic_params unknown
0 1 ptr_eq style
0 1 regex_macro 已弃用
0 1 自我赋值 正确性
1 0 可疑的 unknown
1 0 交换指针到 ref 可疑的
0 1 将数字转换为字节 complexity
1 0 可以表达为指针转换的转换 complexity
1 0 单元哈希 正确性
0 1 未使用的文档注释 unknown
0 1 未使用的括号 unknown
0 1 未使用的返回值 unknown
1 0 冗长的文件读取 restriction
1 0 警告 unknown
0 1 writeln_empty_string style

许可协议

许可协议为 Apache License, Version 2.0 或 MIT 许可协议之一,由您选择。
除非您明确声明,否则您提交给本项目的任何贡献,根据 Apache-2.0 许可证的定义,应按上述方式双许可,不附加任何其他条款或条件。

无运行时依赖项