# https://github.com/ericseppanen/cargo-cranky # cargo install cargo-cranky && cargo cranky # See also clippy.toml deny = ["unsafe_code"] warn = [ "clippy::all", "clippy::as_ptr_cast_mut", "clippy::await_holding_lock", "clippy::bool_to_int_with_if", "clippy::branches_sharing_code", "clippy::char_lit_as_u8", "clippy::checked_conversions", "clippy::clear_with_drain", "clippy::cloned_instead_of_copied", "clippy::dbg_macro", "clippy::debug_assert_with_mut_call", "clippy::default_union_representation", "clippy::derive_partial_eq_without_eq", "clippy::disallowed_macros", # See clippy.toml "clippy::disallowed_methods", # See clippy.toml "clippy::disallowed_names", # See clippy.toml "clippy::disallowed_script_idents", # See clippy.toml "clippy::disallowed_types", # See clippy.toml "clippy::doc_link_with_quotes", "clippy::doc_markdown", "clippy::empty_enum", "clippy::empty_line_after_outer_attr", "clippy::enum_glob_use", "clippy::equatable_if_let", "clippy::exit", "clippy::expl_impl_clone_on_copy", "clippy::explicit_deref_methods", "clippy::explicit_into_iter_loop", "clippy::explicit_iter_loop", "clippy::fallible_impl_from", "clippy::filter_map_next", "clippy::flat_map_option", "clippy::float_cmp_const", "clippy::fn_params_excessive_bools", "clippy::fn_to_numeric_cast_any", "clippy::from_iter_instead_of_collect", "clippy::get_unwrap", "clippy::if_let_mutex", "clippy::implicit_clone", "clippy::imprecise_flops", "clippy::index_refutable_slice", "clippy::inefficient_to_string", "clippy::invalid_upcast_comparisons", "clippy::iter_not_returning_iterator", "clippy::iter_on_empty_collections", "clippy::iter_on_single_items", "clippy::large_digit_groups", "clippy::large_include_file", "clippy::large_stack_arrays", "clippy::large_stack_frames", "clippy::large_types_passed_by_value", "clippy::let_unit_value", "clippy::linkedlist", "clippy::lossy_float_literal", "clippy::macro_use_imports", "clippy::manual_assert", "clippy::manual_clamp", "clippy::manual_instant_elapsed", "clippy::manual_let_else", "clippy::manual_ok_or", "clippy::manual_string_new", "clippy::map_err_ignore", "clippy::map_flatten", "clippy::map_unwrap_or", "clippy::match_on_vec_items", "clippy::match_same_arms", "clippy::match_wild_err_arm", "clippy::match_wildcard_for_single_variants", "clippy::mem_forget", "clippy::mismatched_target_os", "clippy::mismatching_type_param_order", "clippy::missing_enforced_import_renames", "clippy::missing_errors_doc", "clippy::missing_safety_doc", "clippy::mut_mut", "clippy::mutex_integer", "clippy::needless_borrow", "clippy::needless_continue", "clippy::needless_for_each", "clippy::needless_pass_by_value", "clippy::negative_feature_names", "clippy::nonstandard_macro_braces", "clippy::option_option", "clippy::path_buf_push_overwrite", "clippy::print_stdout", "clippy::ptr_as_ptr", "clippy::ptr_cast_constness", "clippy::pub_without_shorthand", "clippy::rc_mutex", "clippy::redundant_type_annotations", "clippy::ref_option_ref", "clippy::rest_pat_in_fully_bound_structs", "clippy::same_functions_in_if_condition", "clippy::semicolon_if_nothing_returned", "clippy::significant_drop_tightening", "clippy::single_match_else", "clippy::str_to_string", "clippy::string_add_assign", "clippy::string_add", "clippy::string_lit_as_bytes", "clippy::string_to_string", "clippy::suspicious_command_arg_space", "clippy::suspicious_xor_used_as_pow", "clippy::todo", "clippy::trailing_empty_array", "clippy::trait_duplication_in_bounds", "clippy::transmute_ptr_to_ptr", "clippy::tuple_array_conversions", "clippy::unchecked_duration_subtraction", "clippy::undocumented_unsafe_blocks", "clippy::unimplemented", "clippy::uninlined_format_args", "clippy::unnecessary_box_returns", "clippy::unnecessary_safety_comment", "clippy::unnecessary_safety_doc", "clippy::unnecessary_self_imports", "clippy::unnecessary_struct_initialization", "clippy::unnecessary_wraps", "clippy::unnested_or_patterns", "clippy::unused_peekable", "clippy::unused_rounding", "clippy::unused_self", "clippy::use_self", "clippy::useless_transmute", "clippy::verbose_file_reads", "clippy::wildcard_dependencies", "clippy::wildcard_imports", "clippy::zero_sized_map_values", "elided_lifetimes_in_paths", "future_incompatible", "nonstandard_style", "rust_2018_idioms", "rust_2021_prelude_collisions", "rustdoc::missing_crate_level_docs", "semicolon_in_expressions_from_macros", "trivial_numeric_casts", "unsafe_op_in_unsafe_fn", # `unsafe_op_in_unsafe_fn` may become the default in future Rust versions: https://github.com/rust-lang/rust/issues/71668 "unused_extern_crates", "unused_import_braces", "unused_lifetimes", # Enable when we update MSRV: # "clippy::implied_bounds_in_impls", # "clippy::needless_pass_by_ref_mut", # "clippy::readonly_write_lock", # "clippy::should_panic_without_expect", # "clippy::string_lit_chars_any", ] allow = [ "clippy::manual_range_contains", # this one is just worse imho "clippy::significant_drop_tightening", # A lot of false positives # TODO(emilk): enable more of these lints: "clippy::cloned_instead_of_copied", "clippy::let_underscore_untyped", "clippy::missing_assert_message", "clippy::missing_errors_doc", "clippy::print_stderr", # TODO(emilk): use `log` crate instead "clippy::self_named_module_files", # False positives "clippy::too_many_lines", "clippy::undocumented_unsafe_blocks", "clippy::unwrap_used", "clippy::useless_let_if_seq", # False positives "clippy::wildcard_imports", # We do this a lot "trivial_casts", "unused_qualifications", ]