Add all of the lints below, one at a time. When a PR adding a lint lands, ping me here so I can scratch it off. ### [lints.rust] - [ ] missing_docs = "warn" ### [lints.clippy] - [ ] needless_question_mark = "allow" - [ ] manual_range_contains = "allow" # More readable than clippy's format. - [ ] assigning_clones = "warn" - [ ] bool_to_int_with_if = "warn" - [ ] borrow_as_ptr = "warn" - [ ] case_sensitive_file_extension_comparisons = "warn" - [ ] cast_lossless = "warn" - [ ] cast_possible_truncation = "allow" # All casts should include a code comment (except test code). - [ ] cast_possible_wrap = "allow" # Same as above re code comment. - [ ] cast_precision_loss = "warn" - [ ] cast_ptr_alignment = "warn" - [ ] cast_sign_loss = "allow" # All casts should include a code comment (except in test code). - [ ] checked_conversions = "warn" - [ ] cloned_instead_of_copied = "warn" - [ ] copy_iterator = "warn" - [ ] default_trait_access = "warn" - [ ] doc_link_with_quotes = "warn" - [ ] doc_markdown = "warn" - [ ] empty_enums = "warn" - [ ] enum_glob_use = "warn" - [ ] expl_impl_clone_on_copy = "warn" - [ ] explicit_deref_methods = "warn" - [ ] explicit_into_iter_loop = "warn" - [ ] explicit_iter_loop = "warn" - [ ] filter_map_next = "warn" - [ ] flat_map_option = "warn" - [ ] float_cmp = "allow" # Bitcoin floats are typically limited to 8 decimal places and we want them exact. - [ ] fn_params_excessive_bools = "warn" - [ ] if_not_else = "warn" - [ ] ignored_unit_patterns = "warn" - [ ] implicit_clone = "warn" - [ ] implicit_hasher = "warn" - [ ] inconsistent_struct_constructor = "warn" - [ ] index_refutable_slice = "warn" - [ ] inefficient_to_string = "warn" - [ ] inline_always = "warn" - [ ] into_iter_without_iter = "warn" - [ ] invalid_upcast_comparisons = "warn" - [ ] items_after_statements = "warn" - [ ] iter_filter_is_ok = "warn" - [ ] iter_filter_is_some = "warn" - [ ] iter_not_returning_iterator = "warn" - [ ] iter_without_into_iter = "warn" - [ ] large_digit_groups = "warn" - [ ] large_futures = "warn" - [ ] large_stack_arrays = "warn" - [ ] large_types_passed_by_value = "warn" - [ ] linkedlist = "warn" - [ ] macro_use_imports = "warn" - [ ] manual_assert = "warn" - [ ] manual_instant_elapsed = "warn" - [ ] manual_is_power_of_two = "warn" - [ ] manual_is_variant_and = "warn" - [ ] manual_let_else = "warn" - [ ] manual_ok_or = "warn" - [ ] manual_string_new = "warn" - [ ] many_single_char_names = "warn" - [ ] map_unwrap_or = "warn" - [ ] match_bool = "allow" # Adds extra indentation and LOC. - [ ] match_same_arms = "allow" # Collapses things that are conceptually unrelated to each other. - [ ] match_wild_err_arm = "warn" - [ ] match_wildcard_for_single_variants = "warn" - [ ] maybe_infinite_iter = "warn" - [ ] mismatching_type_param_order = "warn" - [ ] missing_errors_doc = "warn" - [ ] missing_fields_in_debug = "warn" - [ ] missing_panics_doc = "warn" - [ ] missing_safety_doc = "warn" - [ ] missing_docs_in_private_items = "warn" - [ ] must_use_candidate = "allow" # Useful for audit but many false positives. - [ ] mut_mut = "warn" - [ ] naive_bytecount = "warn" - [ ] needless_bitwise_bool = "warn" - [ ] needless_continue = "warn" - [ ] needless_for_each = "warn" - [ ] needless_pass_by_value = "warn" - [ ] needless_raw_string_hashes = "warn" - [ ] no_effect_underscore_binding = "warn" - [ ] no_mangle_with_rust_abi = "warn" - [ ] option_as_ref_cloned = "warn" - [ ] option_option = "warn" - [ ] ptr_as_ptr = "warn" - [ ] ptr_cast_constness = "warn" - [ ] pub_underscore_fields = "warn" - [ ] range_minus_one = "warn" - [ ] range_plus_one = "warn" - [ ] redundant_clone = "warn" - [ ] redundant_closure_for_method_calls = "warn" - [ ] redundant_else = "warn" - [ ] ref_as_ptr = "warn" - [ ] ref_binding_to_reference = "warn" - [ ] ref_option = "warn" - [ ] ref_option_ref = "warn" - [ ] return_self_not_must_use = "warn" - [ ] same_functions_in_if_condition = "warn" - [ ] semicolon_if_nothing_returned = "warn" - [ ] should_panic_without_expect = "warn" - [ ] similar_names = "allow" # Too many (subjectively) false positives. - [ ] single_char_pattern = "warn" - [ ] single_match_else = "warn" - [ ] stable_sort_primitive = "warn" - [ ] str_split_at_newline = "warn" - [ ] string_add_assign = "warn" - [ ] struct_excessive_bools = "warn" - [ ] struct_field_names = "allow" # dumb - [ ] too_many_lines = "warn" - [ ] transmute_ptr_to_ptr = "warn" - [ ] trivially_copy_pass_by_ref = "warn" - [ ] unchecked_time_subtraction = "warn" - [ ] unicode_not_nfc = "warn" - [ ] uninlined_format_args = "allow" # This is a subjective style choice. - [ ] unnecessary_box_returns = "warn" - [ ] unnecessary_join = "warn" - [ ] unnecessary_literal_bound = "warn" - [ ] unnecessary_wraps = "warn" - [ ] unnested_or_patterns = "warn" - [ ] unreadable_literal = "warn" - [ ] unsafe_derive_deserialize = "warn" - [x] unused_async = "warn" - [ ] unused_self = "warn" - [x] use_self = "warn" [#1122] - [ ] used_underscore_binding = "warn" - [ ] used_underscore_items = "warn" - [ ] verbose_bit_mask = "warn" - [ ] wildcard_imports = "warn" - [ ] zero_sized_map_values = "warn"
Add all of the lints below, one at a time. When a PR adding a lint lands, ping me here so I can scratch it off.
[lints.rust]
[lints.clippy]
use_self = denylint #1122]