diff --git a/extension/index/lints.js b/extension/index/lints.js index 4d8618c0..08c01015 100644 --- a/extension/index/lints.js +++ b/extension/index/lints.js @@ -1 +1 @@ -var C=["Allow","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThe avoid_breaking_exported_api config","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint has been replaced by manual_"];var lintsIndex={"self_named_module_files":[C[0],"\nChecks that module layout uses only mod.rs files.\n\n Why is this bad?\nHaving multiple module layout "],"obfuscated_if_else":["Warn","\nChecks for usage of .then_some(..).unwrap_or(..)\n\n Why is this bad?\nThis can be written more clearl"],"struct_excessive_bools":[C[0],"\nChecks for excessive\nuse of bools in structs.\n\n Why is this bad?\nExcessive bools in a struct\nis oft"],"non_send_fields_in_send_ty":[C[0],"\nThis lint warns about a Send implementation for a type that\ncontains fields that are not safe to be"],"builtin_type_shadow":["Warn","\nWarns if a generic shadows a built-in type.\n\n Why is this bad?\nThis gives surprising type errors.\n\n"],"get_unwrap":[C[0],"\nChecks for usage of .get().unwrap() (or\n.get_mut().unwrap) on a standard library type which impleme"],"default_trait_access":[C[0],"\nChecks for literal calls to Default::default().\n\n Why is this bad?\nIt's easier for the reader if th"],"map_err_ignore":[C[0],"\nChecks for instances of map_err(|_| Some::Enum)\n\n Why is this bad?\nThis map_err throws away the ori"],"match_overlapping_arm":["Warn","\nChecks for overlapping match arms.\n\n Why is this bad?\nIt is likely to be an error and if not, makes"],"collapsible_if":["Warn","\nChecks for nested if statements which can be collapsed\nby &&-combining their conditions.\n\n Why is t"],"maybe_infinite_iter":[C[0],"\nChecks for iteration that may be infinite.\n\n Why is this bad?\nWhile there may be places where this "],"needless_bool_assign":["Warn","\nChecks for expressions of the form if c { x = true } else { x = false }\n(or vice versa) and suggest"],"range_zip_with_len":["Warn","\nChecks for zipping a collection with the range of\n0.._.len().\n\n Why is this bad?\nThe code is better"],"unnecessary_struct_initialization":[C[0],"\nChecks for initialization of a struct by copying a base without setting\nany field.\n\n Why is this ba"],"overly_complex_bool_expr":["Deny","\nChecks for boolean expressions that contain terminals that\ncan be eliminated.\n\n Why is this bad?\nTh"],"async_yields_async":["Deny","\nChecks for async blocks that yield values of types\nthat can themselves be awaited.\n\n Why is this ba"],"or_then_unwrap":["Warn","\nChecks for .or(…).unwrap() calls to Options and Results.\n\n Why is this bad?\nYou should use .unwra"],"needless_question_mark":["Warn","\nSuggests alternatives for useless applications of ? in terminating expressions\n\n Why is this bad?\nT"],"semicolon_outside_block":[C[0],"\n\nSuggests moving the semicolon from a block's final expression outside of the block.\n\n Why is this "],"vec_box":["Warn","\nChecks for usage of Vec> where T: Sized anywhere in the code.\nCheck the [Box documentation]("],"unit_cmp":["Deny","\nChecks for comparisons to unit. This includes all binary\ncomparisons (like == and <) and asserts.\n\n"],"large_digit_groups":[C[0],"\nWarns if the digits of an integral or floating-point\nconstant are grouped into groups that\nare too "],"significant_drop_tightening":[C[0],"\n\nSearches for elements marked with [clippy::has_significant_drop] that could be early\ndropped but a"],"result_map_unit_fn":["Warn","\nChecks for usage of result.map(f) where f is a function\nor closure that returns the unit type ().\n\n"],"int_plus_one":["Warn","\nChecks for usage of x >= y + 1 or x - 1 >= y (and <=) in a block\n\n Why is this bad?\nReadability -- "],"crate_in_macro_def":["Warn","\nChecks for usage of crate as opposed to $crate in a macro definition.\n\n Why is this bad?\ncrate refe"],"alloc_instead_of_core":[C[0],"\n\nFinds items imported through alloc when available through core.\n\n Why is this bad?\n\nCrates which h"],"map_flatten":["Warn","\nChecks for usage of _.map(_).flatten(_) on Iterator and Option\n\n Why is this bad?\nReadability, this"],"get_last_with_len":["Warn","\nChecks for usage of x.get(x.len() - 1) instead of\nx.last().\n\n Why is this bad?\nUsing x.last() is ea"],"unused_unit":["Warn","\nChecks for unit (()) expressions that can be removed.\n\n Why is this bad?\nSuch expressions add no va"],"ifs_same_cond":["Deny","\nChecks for consecutive ifs with the same condition.\n\n Why is this bad?\nThis is probably a copy & pa"],"iter_not_returning_iterator":[C[0],"\nDetects methods named iter or iter_mut that do not have a return type that implements Iterator.\n\n W"],"explicit_into_iter_loop":[C[0],"\nChecks for loops on y.into_iter() where y will do, and\nsuggests the latter.\n\n Why is this bad?\nRead"],"temporary_assignment":["Warn","\nChecks for construction of a structure or tuple just to\nassign a value in it.\n\n Why is this bad?\nRe"],"unnecessary_mut_passed":["Warn","\nDetects passing a mutable reference to a function that only\nrequires an immutable reference.\n\n Why "],"single_range_in_vec_init":["Warn","\nChecks for Vec or array initializations that contain only one range.\n\n Why is this bad?\nThis is alm"],"forget_non_drop":["Warn","\nChecks for calls to std::mem::forget with a value that does not implement Drop.\n\n Why is this bad?\n"],"iter_nth":["Warn","\nChecks for usage of .iter().nth() (and the related\n.iter_mut().nth()) on standard library types wit"],"while_immutable_condition":["Deny","\nChecks whether variables used within while loop condition\ncan be (and are) mutated in the body.\n\n W"],"copy_iterator":[C[0],"\nChecks for types that implement Copy as well as\nIterator.\n\n Why is this bad?\nImplicit copies can be"],"manual_slice_size_calculation":["Warn","\nWhen a is &[T], detect a.len() * size_of::() and suggest size_of_val(a)\ninstead.\n\n Why is this b"],"bool_assert_comparison":["Warn","\nThis lint warns about boolean comparisons in assert-like macros.\n\n Why is this bad?\nIt is shorter t"],"integer_division":[C[0],"\nChecks for division of integers\n\n Why is this bad?\nWhen outside of some very specific algorithms,\ni"],"option_env_unwrap":["Deny","\nChecks for usage of option_env!(...).unwrap() and\nsuggests usage of the env! macro.\n\n Why is this b"],"never_loop":["Deny","\nChecks for loops that will always break, return or\ncontinue an outer loop.\n\n Why is this bad?\nThis "],"infallible_destructuring_match":["Warn","\nChecks for matches being used to destructure a single-variant enum\nor tuple struct where a let will"],"missing_spin_loop":["Warn","\nChecks for empty spin loops\n\n Why is this bad?\nThe loop body should have something like thread::par"],"useless_attribute":["Deny","\nChecks for extern crate and use items annotated with\nlint attributes.\n\nThis lint permits lint attri"],"box_default":["Warn","\nchecks for Box::new(T::default()), which is better written as\nBox::::default().\n\n Why is this ba"],"unsafe_removed_from_name":["Warn","\nChecks for imports that remove \"unsafe\" from an item's\nname.\n\n Why is this bad?\nRenaming makes it l"],"print_stdout":[C[0],"\nChecks for printing on *stdout*. The purpose of this lint\nis to catch debugging remnants.\n\n Why is "],"std_instead_of_alloc":[C[0],"\n\nFinds items imported through std when available through alloc.\n\n Why is this bad?\n\nCrates which ha"],"manual_try_fold":["Warn","\nChecks for usage of Iterator::fold with a type that implements Try.\n\n Why is this bad?\nThe code sho"],"range_plus_one":[C[0],"\nChecks for exclusive ranges where 1 is added to the\nupper bound, e.g., x..(y+1).\n\n Why is this bad?"],"comparison_to_empty":["Warn","\nChecks for comparing to an empty slice such as \"\" or [],\nand suggests using .is_empty() where appli"],"unicode_not_nfc":[C[0],"\nChecks for string literals that contain Unicode in a form\nthat is not equal to its\n[NFC-recompositi"],"missing_enforced_import_renames":[C[0],"\nChecks for imports that do not rename the item as specified\nin the enforce-import-renames config op"],"mixed_case_hex_literals":["Warn","\nWarns on hexadecimal literals with mixed-case letter\ndigits.\n\n Why is this bad?\nIt looks confusing."],"cast_nan_to_int":["Warn","\nChecks for a known NaN float being cast to an integer\n\n Why is this bad?\nNaNs are cast into zero, s"],"return_self_not_must_use":[C[0],"\nThis lint warns when a method returning Self doesn't have the [must_use] attribute.\n\n Why is this b"],"needless_update":["Warn","\nChecks for needlessly including a base struct on update\nwhen all fields are changed anyway.\n\nThis l"],"implicit_hasher":[C[0],"\nChecks for public impl or fn missing generalization\nover different hashers and implicitly defaultin"],"suspicious_splitn":["Deny","\nChecks for calls to [splitn]\n(https://doc.rust-lang.org/std/primitive.str.htmlmethod.splitn) and\nre"],"unused_async":[C[0],"\nChecks for functions that are declared async but have no .awaits inside of them.\n\n Why is this bad?"],"redundant_closure_call":["Warn","\nDetects closures called in the same expression where they\nare defined.\n\n Why is this bad?\nIt is unn"],"unnecessary_lazy_evaluations":["Warn","\nAs the counterpart to or_fun_call, this lint looks for unnecessary\nlazily evaluated closures on Opt"],"deprecated_cfg_attr":["Warn","\nChecks for [cfg_attr(rustfmt, rustfmt_skip)] and suggests to replace it\nwith [rustfmt::skip].\n\n Why"],"deref_by_slicing":[C[0],"\nChecks for slicing expressions which are equivalent to dereferencing the\nvalue.\n\n Why is this bad?\n"],"manual_flatten":["Warn","\nChecks for unnecessary if let usage in a for loop\nwhere only the Some or Ok variant of the iterator"],"unnecessary_literal_unwrap":["Warn","\nChecks for .unwrap() related calls on Results and Options that are constructed.\n\n Why is this bad?\n"],"clear_with_drain":[C[0],"\nChecks for usage of .drain(..) for the sole purpose of clearing a container.\n\n Why is this bad?\nThi"],"transmute_ptr_to_ref":["Warn","\nChecks for transmutes from a pointer to a reference.\n\n Why is this bad?\nThis can always be rewritte"],"println_empty_string":["Warn","\nThis lint warns when you use println!(\"\") to\nprint a newline.\n\n Why is this bad?\nYou should use pri"],"regex_macro":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThe regex! macro does not exist anymor"],"needless_splitn":["Warn","\nChecks for usage of str::splitn (or str::rsplitn) where using str::split would be the same.\n Why is"],"rest_pat_in_fully_bound_structs":[C[0],"\nChecks for unnecessary '..' pattern binding on struct when all fields are explicitly matched.\n\n Why"],"transmutes_expressible_as_ptr_casts":["Warn","\nChecks for transmutes that could be a pointer cast.\n\n Why is this bad?\nReadability. The code tricks"],"precedence":["Warn","\nChecks for operations where precedence may be unclear\nand suggests to add parentheses. Currently it"],"verbose_file_reads":[C[0],"\nChecks for usage of File::read_to_end and File::read_to_string.\n\n Why is this bad?\nfs::{read, read_"],"wildcard_dependencies":[C[0],"\nChecks for wildcard dependencies in the Cargo.toml.\n\n Why is this bad?\n[As the edition guide says]("],"from_raw_with_void_ptr":["Warn","\nChecks if we're passing a c_void raw pointer to {Box,Rc,Arc,Weak}::from_raw(_)\n\n Why is this bad?\nW"],"empty_loop":["Warn","\nChecks for empty loop expressions.\n\n Why is this bad?\nThese busy loops burn CPU cycles without doin"],"unchecked_duration_subtraction":[C[0],"\nLints subtraction between an [Instant] and a [Duration].\n\n Why is this bad?\nUnchecked subtraction c"],"as_conversions":[C[0],"\nChecks for usage of as conversions.\n\nNote that this lint is specialized in linting *every single* u"],"if_same_then_else":["Deny","\nChecks for if/else with the same body as the *then* part\nand the *else* part.\n\n Why is this bad?\nTh"],"transmute_int_to_float":["Warn","\nChecks for transmutes from an integer to a float.\n\n Why is this bad?\nTransmutes are dangerous and e"],"unnecessary_filter_map":["Warn","\nChecks for filter_map calls that could be replaced by filter or map.\nMore specifically it checks if"],"mismatched_target_os":["Deny","\nChecks for cfg attributes having operating systems used in target family position.\n\n Why is this ba"],"imprecise_flops":[C[0],"\nLooks for floating-point expressions that\ncan be expressed using built-in methods to improve accura"],"too_many_lines":[C[0],"\nChecks for functions with a large amount of lines.\n\n Why is this bad?\nFunctions with a lot of lines"],"needless_parens_on_range_literals":["Warn","\nThe lint checks for parenthesis on literals in range statements that are\nsuperfluous.\n\n Why is this"],"multiple_inherent_impl":[C[0],"\nChecks for multiple inherent implementations of a struct\n\n Why is this bad?\nSplitting the implement"],"writeln_empty_string":["Warn","\nThis lint warns when you use writeln!(buf, \"\") to\nprint a newline.\n\n Why is this bad?\nYou should us"],"serde_api_misuse":["Deny","\nChecks for mis-uses of the serde API.\n\n Why is this bad?\nSerde is very finnicky about how its API s"],"empty_enum":[C[0],"\nChecks for enums with no variants.\n\nAs of this writing, the never_type is still a\nnightly-only expe"],"panic":[C[0],"\nChecks for usage of panic!.\n\n Why is this bad?\npanic! will stop the execution of the executable\n\n E"],"unit_return_expecting_ord":["Deny","\nChecks for functions that expect closures of type\nFn(...) -> Ord where the implemented closure retu"],"use_debug":[C[0],"\nChecks for usage of Debug formatting. The purpose of this\nlint is to catch debugging remnants.\n\n Wh"],"disallowed_script_idents":[C[0],"\nChecks for usage of unicode scripts other than those explicitly allowed\nby the lint config.\n\nThis l"],"match_same_arms":[C[0],"\nChecks for match with identical arm bodies.\n\nNote: Does not lint on wildcards if the non_exhaustive"],"extra_unused_type_parameters":["Warn","\nChecks for type parameters in generics that are never used anywhere else.\n\n Why is this bad?\nFuncti"],"find_map":["None",C[2]],"needless_doctest_main":["Warn","\nChecks for fn main() { .. } in doctests\n\n Why is this bad?\nThe test can be shorter (and likely more"],"wrong_pub_self_convention":["None",C[1]],"err_expect":["Warn","\nChecks for .err().expect() calls on the Result type.\n\n Why is this bad?\n.expect_err() can be called"],"await_holding_invalid_type":["Warn","\nAllows users to configure types which should not be held across await\nsuspension points.\n\n Why is t"],"min_max":["Deny","\nChecks for expressions where std::cmp::min and max are\nused to clamp values, but switched so that t"],"mut_from_ref":["Deny","\nThis lint checks for functions that take immutable references and return\nmutable ones. This will no"],"mem_replace_option_with_none":["Warn","\nChecks for mem::replace() on an Option with\nNone.\n\n Why is this bad?\nOption already has the method "],"unnecessary_cast":["Warn","\nChecks for casts to the same type, casts of int literals to integer types, casts of float\nliterals "],"partialeq_ne_impl":["Warn","\nChecks for manual re-implementations of PartialEq::ne.\n\n Why is this bad?\nPartialEq::ne is required"],"non_minimal_cfg":["Warn","\nChecks for any and all combinators in cfg with only one condition.\n\n Why is this bad?\nIf there is o"],"strlen_on_c_strings":["Warn","\nChecks for usage of libc::strlen on a CString or CStr value,\nand suggest calling as_bytes().len() o"],"iter_count":["Warn","\nChecks for the use of .iter().count().\n\n Why is this bad?\n.len() is more efficient and more\nreadabl"],"let_unit_value":["Warn","\nChecks for binding a unit value.\n\n Why is this bad?\nA unit value cannot usefully be used anywhere. "],"manual_ok_or":[C[0],"\n\nFinds patterns that reimplement Option::ok_or.\n\n Why is this bad?\n\nConcise code helps focusing on "],"suspicious_command_arg_space":["Warn","\n\nChecks for Command::arg() invocations that look like they\nshould be multiple arguments instead, su"],"range_minus_one":[C[0],"\nChecks for inclusive ranges where 1 is subtracted from\nthe upper bound, e.g., x..=(y-1).\n\n Why is t"],"fallible_impl_from":[C[0],"\nChecks for impls of From<..> that contain panic!() or unwrap()\n\n Why is this bad?\nTryFrom should be"],"boxed_local":["Warn","\nChecks for usage of Box where an unboxed T would\nwork fine.\n\n Why is this bad?\nThis is an unnece"],"short_circuit_statement":["Warn","\nChecks for the use of short circuit boolean conditions as\na\nstatement.\n\n Why is this bad?\nUsing a s"],"large_include_file":[C[0],"\nChecks for the inclusion of large files via include_bytes!()\nand include_str!()\n\n Why is this bad?\n"],"map_clone":["Warn","\nChecks for usage of map(|x| x.clone()) or\ndereferencing closures for Copy types, on Iterator or Opt"],"redundant_allocation":["Warn","\nChecks for usage of redundant allocations anywhere in the code.\n\n Why is this bad?\nExpressions such"],"manual_clamp":[C[0],"\nIdentifies good opportunities for a clamp function from std or core, and suggests using it.\n\n Why i"],"from_iter_instead_of_collect":[C[0],"\nChecks for from_iter() function calls on types that implement the FromIterator\ntrait.\n\n Why is this"],"redundant_field_names":["Warn","\nChecks for fields in struct literals where shorthands\ncould be used.\n\n Why is this bad?\nIf the fiel"],"string_to_string":[C[0],"\nThis lint checks for .to_string() method calls on values of type String.\n\n Why is this bad?\nThe to_"],"double_neg":["Warn","\nDetects expressions of the form --x.\n\n Why is this bad?\nIt can mislead C/C++ programmers to think x"],"format_push_string":[C[0],"\nDetects cases where the result of a format! call is\nappended to an existing String.\n\n Why is this b"],"string_slice":[C[0],"\nChecks for slice operations on strings\n\n Why is this bad?\nUTF-8 characters span multiple bytes, and"],"indexing_slicing":[C[0],"\nChecks for usage of indexing or slicing. Arrays are special cases, this lint\ndoes report on arrays "],"unused_collect":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint has been superseded by [must"],"unnecessary_sort_by":["Warn","\nChecks for usage of Vec::sort_by passing in a closure\nwhich compares the two arguments, either dire"],"explicit_iter_loop":[C[0],"\nChecks for loops on x.iter() where &x will do, and\nsuggests the latter.\n\n Why is this bad?\nReadabil"],"flat_map_option":[C[0],"\nChecks for usage of Iterator::flat_map() where filter_map() could be\nused instead.\n\n Why is this ba"],"for_kv_map":["Warn","\nChecks for iterating a map (HashMap or BTreeMap) and\nignoring either the keys or values.\n\n Why is t"],"match_str_case_mismatch":["Deny","\nChecks for match expressions modifying the case of a string with non-compliant arms\n\n Why is this b"],"rc_mutex":[C[0],"\nChecks for Rc>.\n\n Why is this bad?\nRc is used in single thread and Mutex is used in multi "],"redundant_else":[C[0],"\nChecks for else blocks that can be removed without changing semantics.\n\n Why is this bad?\nThe else "],"iter_with_drain":[C[0],"\nChecks for usage of .drain(..) on Vec and VecDeque for iteration.\n\n Why is this bad?\n.into_iter() i"],"manual_memcpy":["Warn","\nChecks for for-loops that manually copy items between\nslices that could be optimized by having a me"],"should_implement_trait":["Warn","\nChecks for methods that should live in a trait\nimplementation of a std trait (see [llogiq's blog\npo"],"borrowed_box":["Warn","\nChecks for usage of &Box anywhere in the code.\nCheck the [Box documentation](https://doc.rust-la"],"cast_slice_different_sizes":["Deny","\nChecks for as casts between raw pointers to slices with differently sized elements.\n\n Why is this b"],"vec_resize_to_zero":["Deny","\nFinds occurrences of Vec::resize(0, an_int)\n\n Why is this bad?\nThis is probably an argument inversi"],"borrow_interior_mutable_const":["Warn","\nChecks if const items which is interior mutable (e.g.,\ncontains a Cell, Mutex, AtomicXxxx, etc.) ha"],"single_char_lifetime_names":[C[0],"\nChecks for lifetimes with names which are one character\nlong.\n\n Why is this bad?\nA single character"],"bad_bit_mask":["Deny","\nChecks for incompatible bit masks in comparisons.\n\nThe formula for detecting if an expression of th"],"manual_next_back":["Warn","\nChecks for .rev().next() on a DoubleEndedIterator\n\n Why is this bad?\n.next_back() is cleaner.\n\n Exa"],"large_stack_arrays":[C[0],"\nChecks for local arrays that may be too large.\n\n Why is this bad?\nLarge local arrays may cause stac"],"ref_option_ref":[C[0],"\nChecks for usage of &Option<&T>.\n\n Why is this bad?\nSince & is Copy, it's useless to have a\nreferen"],"as_ptr_cast_mut":[C[0],"\nChecks for the result of a &self-taking as_ptr being cast to a mutable pointer\n\n Why is this bad?\nS"],"size_of_in_element_count":["Deny","\nDetects expressions where\nsize_of:: or size_of_val:: is used as a\ncount of elements of type T"],"cast_precision_loss":[C[0],"\nChecks for casts from any numerical to a float type where\nthe receiving type cannot store all value"],"suboptimal_flops":[C[0],"\nLooks for floating-point expressions that\ncan be expressed using built-in methods to improve both\na"],"host_endian_bytes":[C[0],"\nChecks for the usage of the to_ne_bytes method and/or the function from_ne_bytes.\n\n Why is this bad"],"invisible_characters":["Deny","\nChecks for invisible Unicode characters in the code.\n\n Why is this bad?\nHaving an invisible charact"],"iter_next_loop":["Deny","\nChecks for loops on x.next().\n\n Why is this bad?\nnext() returns either Some(value) if there was a\nv"],"iter_skip_next":["Warn","\nChecks for usage of .skip(x).next() on iterators.\n\n Why is this bad?\n.nth(x) is cleaner\n\n Example\nr"],"let_underscore_future":["Warn","\nChecks for let _ = where the resulting type of expr implements Future\n\n Why is this bad?\nFut"],"manual_map":["Warn","\nChecks for usage of match which could be implemented using map\n\n Why is this bad?\nUsing the map met"],"manual_string_new":[C[0],"\n\nChecks for usage of \"\" to create a String, such as \"\".to_string(), \"\".to_owned(),\nString::from(\"\")"],"match_ref_pats":["Warn","\nChecks for matches where all arms match a reference,\nsuggesting to remove the reference and deref t"],"unsafe_vector_initialization":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint used to suggest replacing le"],"modulo_arithmetic":[C[0],"\nChecks for modulo arithmetic.\n\n Why is this bad?\nThe results of modulo (%) operation might differ\nd"],"invalid_null_ptr_usage":["Deny","\nThis lint checks for invalid usages of ptr::null.\n\n Why is this bad?\nThis causes undefined behavior"],"from_str_radix_10":["Warn","\n\nChecks for function invocations of the form primitive::from_str_radix(s, 10)\n\n Why is this bad?\n\nT"],"field_reassign_with_default":["Warn","\nChecks for immediate reassignment of fields initialized\nwith Default::default().\n\n Why is this bad?"],"not_unsafe_ptr_arg_deref":["Deny","\nChecks for public functions that dereference raw pointer\narguments but are not marked unsafe.\n\n Why"],"checked_conversions":[C[0],"\nChecks for explicit bounds checking when casting.\n\n Why is this bad?\nReduces the readability of sta"],"decimal_literal_representation":[C[0],"\nWarns if there is a better representation for a numeric literal.\n\n Why is this bad?\nEspecially for "],"else_if_without_else":[C[0],"\nChecks for usage of if expressions with an else if branch,\nbut without a final else branch.\n\n Why i"],"map_entry":["Warn","\nChecks for usage of contains_key + insert on HashMap\nor BTreeMap.\n\n Why is this bad?\nUsing entry is"],"new_ret_no_self":["Warn","\nChecks for new not returning a type that contains Self.\n\n Why is this bad?\nAs a convention, new met"],"ok_expect":["Warn","\nChecks for usage of ok().expect(..).\n\n Why is this bad?\nBecause you usually call expect() on the Re"],"panicking_unwrap":["Deny","\nChecks for calls of unwrap[_err]() that will always fail.\n\n Why is this bad?\nIf panicking is desire"],"partial_pub_fields":[C[0],"\nChecks whether partial fields of a struct are public.\n\nEither make all fields of a type public, or "],"ptr_offset_with_cast":["Warn","\nChecks for usage of the offset pointer method with a usize casted to an\nisize.\n\n Why is this bad?\nI"],"suspicious_unary_op_formatting":["Warn","\nChecks the formatting of a unary operator on the right hand side\nof a binary operator. It lints if "],"match_single_binding":["Warn","\nChecks for useless match that binds to only one value.\n\n Why is this bad?\nReadability and needless "],"mem_forget":[C[0],"\nChecks for usage of std::mem::forget(t) where t is\nDrop or has a field that implements Drop.\n\n Why "],"redundant_pub_crate":[C[0],"\nChecks for items declared pub(crate) that are not crate visible because they\nare inside a private m"],"print_in_format_impl":["Warn","\nChecks for usage of println, print, eprintln or eprint in an\nimplementation of a formatting trait.\n"],"option_as_ref_deref":["Warn","\nChecks for usage of _.as_ref().map(Deref::deref) or its aliases (such as String::as_str).\n\n Why is "],"clone_on_copy":["Warn","\nChecks for usage of .clone() on a Copy type.\n\n Why is this bad?\nThe only reason Copy types implemen"],"inline_always":[C[0],"\nChecks for items annotated with [inline(always)],\nunless the annotated function is empty or simply "],"let_underscore_must_use":[C[0],"\nChecks for let _ = where expr is [must_use]\n\n Why is this bad?\nIt's better to explicitly han"],"filter_next":["Warn","\nChecks for usage of _.filter(_).next().\n\n Why is this bad?\nReadability, this can be written more co"],"redundant_type_annotations":[C[0],"\nWarns about needless / redundant type annotations.\n\n Why is this bad?\nCode without type annotations"],"large_enum_variant":["Warn","\nChecks for large size differences between variants on\nenums.\n\n Why is this bad?\nEnum size is bounde"],"naive_bytecount":[C[0],"\nChecks for naive byte counts\n\n Why is this bad?\nThe [bytecount](https://crates.io/crates/bytecount)"],"transmute_bytes_to_str":["Warn","\nChecks for transmutes from a &[u8] to a &str.\n\n Why is this bad?\nNot every byte slice is a valid UT"],"trivial_regex":[C[0],"\nChecks for trivial [regex](https://crates.io/crates/regex)\ncreation (with Regex::new, RegexBuilder:"],"double_must_use":["Warn","\nChecks for a [must_use] attribute without\nfurther information on functions and methods that return "],"unseparated_literal_suffix":[C[0],"\nWarns if literal suffixes are not separated by an\nunderscore.\nTo enforce unseparated literal suffix"],"large_futures":[C[0],"\nIt checks for the size of a Future created by async fn or async {}.\n\n Why is this bad?\nDue to the c"],"bind_instead_of_map":["Warn","\nChecks for usage of _.and_then(|x| Some(y)), _.and_then(|x| Ok(y)) or\n_.or_else(|x| Err(y)).\n\n Why "],"inherent_to_string_shadow_display":["Deny","\nChecks for the definition of inherent methods with a signature of to_string(&self) -> String and if"],"suspicious_doc_comments":["Warn","\nDetects the use of outer doc comments (///, /**) followed by a bang (!): ///!\n\n Why is this bad?\nTr"],"trait_duplication_in_bounds":[C[0],"\nChecks for cases where generics or trait objects are being used and multiple\nsyntax specifications "],"dbg_macro":[C[0],"\nChecks for usage of the [dbg!](https://doc.rust-lang.org/std/macro.dbg.html) macro.\n\n Why is this b"],"type_complexity":["Warn","\nChecks for types used in structs, parameters and let\ndeclarations above a certain complexity thresh"],"module_inception":["Warn","\nChecks for modules that have the same name as their\nparent module\n\n Why is this bad?\nA typical begi"],"wildcard_enum_match_arm":[C[0],"\nChecks for wildcard enum matches using _.\n\n Why is this bad?\nNew enum variants added by library upd"],"single_match":["Warn","\nChecks for matches with a single arm where an if let\nwill usually suffice.\n\nThis intentionally does"],"derive_partial_eq_without_eq":[C[0],"\nChecks for types that derive PartialEq and could implement Eq.\n\n Why is this bad?\nIf a type T deriv"],"duplicate_mod":["Warn","\nChecks for files that are included as modules multiple times.\n\n Why is this bad?\nLoading a file as "],"inspect_for_each":["Warn","\nChecks for usage of inspect().for_each().\n\n Why is this bad?\nIt is the same as performing the compu"],"shadow_reuse":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, while reusing the original value.\n"],"needless_if":["Warn","\nChecks for empty if branches with no else branch.\n\n Why is this bad?\nIt can be entirely omitted, an"],"tabs_in_doc_comments":["Warn","\nChecks doc comments for usage of tab characters.\n\n Why is this bad?\nThe rust style-guide promotes s"],"cast_enum_truncation":["Warn","\nChecks for casts from an enum type to an integral type which will definitely truncate the\nvalue.\n\n "],"manual_swap":["Warn","\nChecks for manual swapping.\n\nNote that the lint will not be emitted in const blocks, as the suggest"],"deref_addrof":["Warn","\nChecks for usage of *& and *&mut in expressions.\n\n Why is this bad?\nImmediately dereferencing a ref"],"empty_line_after_doc_comments":[C[0],"\nChecks for empty lines after documenation comments.\n\n Why is this bad?\nThe documentation comment wa"],"missing_safety_doc":["Warn","\nChecks for the doc comments of publicly visible\nunsafe functions and warns if there is no Safety s"],"cargo_common_metadata":[C[0],"\nChecks to see if all common metadata is defined in\nCargo.toml. See: https://rust-lang-nursery.githu"],"many_single_char_names":[C[0],"\nChecks for too many variables whose name consists of a\nsingle character.\n\n Why is this bad?\nIt's ha"],"partialeq_to_none":["Warn","\n\nChecks for binary comparisons to a literal Option::None.\n\n Why is this bad?\n\nA programmer checking"],"unused_self":[C[0],"\nChecks methods that contain a self argument but don't use it\n\n Why is this bad?\nIt may be clearer t"],"question_mark_used":[C[0],"\nChecks for expressions that use the question mark operator and rejects them.\n\n Why is this bad?\nSom"],"vec_init_then_push":["Warn","\nChecks for calls to push immediately after creating a new Vec.\n\nIf the Vec is created using with_ca"],"extra_unused_lifetimes":["Warn","\nChecks for lifetimes in generics that are never used\nanywhere else.\n\n Why is this bad?\nThe addition"],"incorrect_partial_ord_impl_on_ord_type":["Deny","\nChecks for manual implementations of both PartialOrd and Ord when only Ord is\nnecessary.\n\n Why is t"],"mistyped_literal_suffixes":["Deny","\nWarns for mistyped suffix in literals\n\n Why is this bad?\nThis is most probably a typo\n\n Known probl"],"manual_saturating_arithmetic":["Warn","\nChecks for .checked_add/sub(x).unwrap_or(MAX/MIN).\n\n Why is this bad?\nThese can be written simply w"],"question_mark":["Warn","\nChecks for expressions that could be replaced by the question mark operator.\n\n Why is this bad?\nQue"],"maybe_misused_cfg":["Warn","\nChecks for [cfg(features = \"...\")] and suggests to replace it with\n[cfg(feature = \"...\")].\n\n Why is"],"string_extend_chars":["Warn","\nChecks for the use of .extend(s.chars()) where s is a\n&str or String.\n\n Why is this bad?\n.push_str("],"needless_continue":[C[0],"\nThe lint checks for if-statements appearing in loops\nthat contain a continue statement in either th"],"manual_range_patterns":["Warn","\nLooks for combined OR patterns that are all contained in a specific range,\ne.g. 6 | 4 | 5 | 9 | 7 |"],"impl_trait_in_params":[C[0],"\nLints when impl Trait is being used in a function's parameters.\n Why is this bad?\nTurbofish syntax "],"module_name_repetitions":[C[0],"\nDetects type names that are prefixed or suffixed by the\ncontaining module's name.\n\n Why is this bad"],"iter_cloned_collect":["Warn","\nChecks for the use of .cloned().collect() on slice to\ncreate a Vec.\n\n Why is this bad?\n.to_vec() is"],"large_const_arrays":["Warn","\nChecks for large const arrays that should\nbe defined as static instead.\n\n Why is this bad?\nPerforma"],"collapsible_match":["Warn","\nFinds nested match or if let expressions where the patterns may be \"collapsed\" together\nwithout add"],"match_as_ref":["Warn","\nChecks for match which is used to add a reference to an\nOption value.\n\n Why is this bad?\nUsing as_r"],"transmute_int_to_non_zero":["Warn","\nChecks for transmutes from integers to NonZero* types, and suggests their new_unchecked\nmethod inst"],"unnecessary_safety_comment":[C[0],"\nChecks for // SAFETY: comments on safe code.\n\n Why is this bad?\nSafe code has no safety requiremen"],"derived_hash_with_manual_eq":["Deny","\nLints against manual PartialEq implementations for types with a derived Hash\nimplementation.\n\n Why "],"mem_replace_with_uninit":["Deny","\nChecks for mem::replace(&mut _, mem::uninitialized())\nand mem::replace(&mut _, mem::zeroed()).\n\n Wh"],"pub_use":[C[0],"\n\nRestricts the usage of pub use ...\n\n Why is this bad?\n\npub use is usually fine, but a project may "],"ref_binding_to_reference":[C[0],"\nChecks for ref bindings which create a reference to a reference.\n\n Why is this bad?\nThe address-of "],"unnecessary_operation":["Warn","\nChecks for expression statements that can be reduced to a\nsub-expression.\n\n Why is this bad?\nExpres"],"type_repetition_in_bounds":[C[0],"\nThis lint warns about unnecessary type repetitions in trait bounds\n\n Why is this bad?\nRepeating the"],"cmp_owned":["Warn","\nChecks for conversions to owned values just for the sake\nof a comparison.\n\n Why is this bad?\nThe co"],"zero_sized_map_values":[C[0],"\nChecks for maps with zero-sized value types anywhere in the code.\n\n Why is this bad?\nSince there is"],"unstable_as_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::as_slice, "],"linkedlist":[C[0],"\nChecks for usage of any LinkedList, suggesting to use a\nVec or a VecDeque (formerly called RingBuf)"],"if_then_some_else_none":[C[0],"\nChecks for if-else that could be written using either bool::then or bool::then_some.\n\n Why is this "],"unused_peekable":[C[0],"\nChecks for the creation of a peekable iterator that is never .peek()ed\n\n Why is this bad?\nCreating "],"seek_from_current":["Warn","\n\nChecks an argument of seek method of Seek trait\nand if it start seek from SeekFrom::Current(0), su"],"write_with_newline":["Warn","\nThis lint warns when you use write!() with a format\nstring that\nends in a newline.\n\n Why is this ba"],"replace_consts":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nAssociated-constants are now preferred"],"needless_pub_self":["Warn","\nChecks for usage of pub(self) and pub(in self).\n\n Why is this bad?\nIt's unnecessary, omitting the p"],"clone_on_ref_ptr":[C[0],"\nChecks for usage of .clone() on a ref-counted pointer,\n(Rc, Arc, rc::Weak, or sync::Weak), and sugg"],"implicit_saturating_add":["Warn","\nChecks for implicit saturating addition.\n\n Why is this bad?\nThe built-in function is more readable "],"incorrect_clone_impl_on_copy_type":["Deny","\nChecks for manual implementations of Clone when Copy is already implemented.\n\n Why is this bad?\nIf "],"large_types_passed_by_value":[C[0],"\nChecks for functions taking arguments by value, where\nthe argument type is Copy and large enough to"],"mutable_key_type":["Warn","\nChecks for sets/maps with mutable key types.\n\n Why is this bad?\nAll of HashMap, HashSet, BTreeMap a"],"transmute_undefined_repr":[C[0],"\nChecks for transmutes between types which do not have a representation defined relative to\neach oth"],"main_recursion":["Warn","\nChecks for recursion using the entrypoint.\n\n Why is this bad?\nApart from special setups (which we c"],"len_without_is_empty":["Warn","\nChecks for items that implement .len() but not\n.is_empty().\n\n Why is this bad?\nIt is good custom to"],"pub_enum_variant_names":["None",C[1]],"inconsistent_struct_constructor":[C[0],"\nChecks for struct constructors where all fields are shorthand and\nthe order of the field init short"],"redundant_at_rest_pattern":["Warn","\nChecks for [all @ ..] patterns.\n\n Why is this bad?\nIn all cases, all works fine and can often make "],"useless_conversion":["Warn","\nChecks for Into, TryInto, From, TryFrom, or IntoIter calls\nwhich uselessly convert to the same type"],"or_fun_call":[C[0],"\nChecks for calls to .or(foo(..)), .unwrap_or(foo(..)),\n.or_insert(foo(..)) etc., and suggests to us"],"comparison_chain":["Warn","\nChecks comparison chains written with if that can be\nrewritten with match and cmp.\n\n Why is this ba"],"len_zero":["Warn","\nChecks for getting the length of something via .len()\njust to compare to zero, and suggests using ."],"out_of_bounds_indexing":["Deny","\nChecks for out of bounds array indexing with a constant\nindex.\n\n Why is this bad?\nThis will always "],"drain_collect":["Warn","\nChecks for calls to .drain() that clear the collection, immediately followed by a call to .collect("],"iter_next_slice":["Warn","\nChecks for usage of iter().next() on a Slice or an Array\n\n Why is this bad?\nThese can be shortened "],"collapsible_str_replace":["Warn","\nChecks for consecutive calls to str::replace (2 or more)\nthat can be collapsed into a single call.\n"],"unnecessary_safety_doc":[C[0],"\nChecks for the doc comments of publicly visible\nsafe functions and traits and warns if there is a "],"inherent_to_string":["Warn","\nChecks for the definition of inherent methods with a signature of to_string(&self) -> String.\n\n Why"],"manual_async_fn":["Warn","\nIt checks for manual implementations of async functions.\n\n Why is this bad?\nIt's more idiomatic to "],"wrong_transmute":["Deny","\nChecks for transmutes that can't ever be correct on any\narchitecture.\n\n Why is this bad?\nIt's basic"],"manual_assert":[C[0],"\nDetects if-then-panic! that can be replaced with assert!.\n\n Why is this bad?\nassert! is simpler tha"],"needless_pass_by_value":[C[0],"\nChecks for functions taking arguments by value, but not\nconsuming them in its\nbody.\n\n Why is this b"],"zero_prefixed_literal":["Warn","\nWarns if an integral constant literal starts with 0.\n\n Why is this bad?\nIn some languages (includin"],"path_buf_push_overwrite":[C[0],"\n* Checks for [push](https://doc.rust-lang.org/std/path/struct.PathBuf.htmlmethod.push)\ncalls on Pat"],"debug_assert_with_mut_call":[C[0],"\nChecks for function/method calls with a mutable\nparameter in debug_assert!, debug_assert_eq! and de"],"mixed_read_write_in_expression":[C[0],"\nChecks for a read and a write to the same variable where\nwhether the read occurs before or after th"],"extend_with_drain":["Warn","\nChecks for occurrences where one vector gets extended instead of append\n\n Why is this bad?\nUsing ap"],"infinite_iter":["Deny","\nChecks for iteration that is guaranteed to be infinite.\n\n Why is this bad?\nWhile there may be place"],"print_with_newline":["Warn","\nThis lint warns when you use print!() with a format\nstring that ends in a newline.\n\n Why is this ba"],"manual_filter":["Warn","\nChecks for usage of match which could be implemented using filter\n\n Why is this bad?\nUsing the filt"],"manual_filter_map":["Warn","\nChecks for usage of _.filter(_).map(_) that can be written more simply\nas filter_map(_).\n\n Why is t"],"slow_vector_initialization":["Warn","\nChecks slow zero-filled vector initialization\n\n Why is this bad?\nThese structures are non-idiomatic"],"vtable_address_comparisons":["Deny","\nChecks for comparisons with an address of a trait vtable.\n\n Why is this bad?\nComparing trait object"],"match_bool":[C[0],"\nChecks for matches where match expression is a bool. It\nsuggests to replace the expression with an "],"transmute_float_to_int":["Warn","\nChecks for transmutes from a float to an integer.\n\n Why is this bad?\nTransmutes are dangerous and e"],"inefficient_to_string":[C[0],"\nChecks for usage of .to_string() on an &&T where\nT implements ToString directly (like &&str or &&St"],"duration_subsec":["Warn","\nChecks for calculation of subsecond microseconds or milliseconds\nfrom other Duration methods.\n\n Why"],"manual_range_contains":["Warn","\nChecks for expressions like x >= 3 && x < 8 that could\nbe more readably expressed as (3..8).contain"],"fn_to_numeric_cast":["Warn","\nChecks for casts of function pointers to something other than usize\n\n Why is this bad?\nCasting a fu"],"suspicious_op_assign_impl":["Warn","\nLints for suspicious operations in impls of OpAssign, e.g.\nsubtracting elements in an AddAssign imp"],"non_ascii_literal":[C[0],"\nChecks for non-ASCII characters in string and char literals.\n\n Why is this bad?\nYeah, we know, the "],"octal_escapes":["Warn","\nChecks for \\0 escapes in string and byte literals that look like octal\ncharacter escapes in C.\n\n Wh"],"manual_while_let_some":["Warn","\nLooks for loops that check for emptiness of a Vec in the condition and pop an element\nin the body a"],"if_let_redundant_pattern_matching":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThe original rule will only lint for i"],"to_digit_is_some":["Warn","\nChecks for .to_digit(..).is_some() on chars.\n\n Why is this bad?\nThis is a convoluted way of checkin"],"expect_used":[C[0],"\nChecks for .expect() or .expect_err() calls on Results and .expect() call on Options.\n\n Why is this"],"ptr_eq":["Warn","\nUse std::ptr::eq when applicable\n\n Why is this bad?\nptr::eq can be used to compare &T references\n(w"],"single_element_loop":["Warn","\nChecks whether a for loop has a single element.\n\n Why is this bad?\nThere is no reason to have a loo"],"almost_swapped":["Deny","\nChecks for foo = bar; bar = foo sequences.\n\n Why is this bad?\nThis looks like a failed attempt to s"],"doc_markdown":[C[0],"\nChecks for the presence of _, :: or camel-case words\noutside ticks in documentation.\n\n Why is this "],"manual_instant_elapsed":[C[0],"\nLints subtraction between Instant::now() and another Instant.\n\n Why is this bad?\nIt is easy to acci"],"map_identity":["Warn","\nChecks for instances of map(f) where f is the identity function.\n\n Why is this bad?\nIt can be writt"],"enum_clike_unportable_variant":["Deny","\nChecks for C-like enumerations that are\nrepr(isize/usize) and have values that don't fit into an i3"],"unused_format_specs":["Warn","\nDetects [formatting parameters] that have no effect on the output of\nformat!(), println!() or simil"],"let_and_return":["Warn","\nChecks for let-bindings, which are subsequently\nreturned.\n\n Why is this bad?\nIt is just extraneous "],"unsound_collection_transmute":["Deny","\nChecks for transmutes between collections whose\ntypes have different ABI, size or alignment.\n\n Why "],"stable_sort_primitive":[C[0],"\nWhen sorting primitive values (integers, bools, chars, as well\nas arrays, slices, and tuples of suc"],"unneeded_field_pattern":[C[0],"\nChecks for structure field patterns bound to wildcards.\n\n Why is this bad?\nUsing .. instead is shor"],"transmuting_null":["Deny","\nChecks for transmute calls which would receive a null pointer.\n\n Why is this bad?\nTransmuting a nul"],"crosspointer_transmute":["Warn","\nChecks for transmutes between a type T and *T.\n\n Why is this bad?\nIt's easy to mistakenly transmute"],"match_wildcard_for_single_variants":[C[0],"\nChecks for wildcard enum matches for a single variant.\n\n Why is this bad?\nNew enum variants added b"],"misrefactored_assign_op":["Warn","\nChecks for a op= a op b or a op= b op a patterns.\n\n Why is this bad?\nMost likely these are bugs whe"],"match_result_ok":["Warn","\nChecks for unnecessary ok() in while let.\n\n Why is this bad?\nCalling ok() in while let is unnecessa"],"permissions_set_readonly_false":["Warn","\nChecks for calls to std::fs::Permissions.set_readonly with argument false.\n\n Why is this bad?\nOn Un"],"cast_enum_constructor":["Warn","\nChecks for casts from an enum tuple constructor to an integer.\n\n Why is this bad?\nThe cast is easil"],"manual_split_once":["Warn","\nChecks for usage of str::splitn(2, _)\n\n Why is this bad?\nsplit_once is both clearer in intent and s"],"significant_drop_in_scrutinee":[C[0],"\nChecks for temporaries returned from function calls in a match scrutinee that have the\nclippy::has_"],"suspicious_assignment_formatting":["Warn","\nChecks for usage of the non-existent =*, =! and =-\noperators.\n\n Why is this bad?\nThis is either a t"],"panic_in_result_fn":[C[0],"\nChecks for usage of panic! or assertions in a function of type result.\n\n Why is this bad?\nFor some "],"default_numeric_fallback":[C[0],"\nChecks for usage of unconstrained numeric literals which may cause default numeric fallback in type"],"mut_mut":[C[0],"\nChecks for instances of mut mut references.\n\n Why is this bad?\nMultiple muts don't add anything mea"],"disallowed_types":["Warn","\nDenies the configured types in clippy.toml.\n\nNote: Even though this lint is warn-by-default, it wil"],"to_string_in_format_args":["Warn","\nChecks for [ToString::to_string](https://doc.rust-lang.org/std/string/trait.ToString.htmltymethod.t"],"nonstandard_macro_braces":[C[0],"\nChecks that common macros are used with consistent bracing.\n\n Why is this bad?\nThis is mostly a con"],"unnested_or_patterns":[C[0],"\nChecks for unnested or-patterns, e.g., Some(0) | Some(2) and\nsuggests replacing the pattern with a "],"unreachable":[C[0],"\nChecks for usage of unreachable!.\n\n Why is this bad?\nThis macro can cause code to panic\n\n Example\nr"],"unstable_as_mut_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::as_mut_sli"],"transmute_null_to_fn":["Deny","\nChecks for null function pointer creation through transmute.\n\n Why is this bad?\nCreating a null fun"],"doc_link_with_quotes":[C[0],"\nDetects the syntax ['foo'] in documentation comments (notice quotes instead of backticks)\noutside o"],"transmute_int_to_char":["Warn","\nChecks for transmutes from an integer to a char.\n\n Why is this bad?\nNot every integer is a Unicode "],"mismatching_type_param_order":[C[0],"\nChecks for type parameters which are positioned inconsistently between\na type definition and impl b"],"fn_address_comparisons":["Deny","\nChecks for comparisons with an address of a function item.\n\n Why is this bad?\nFunction item address"],"format_in_format_args":["Warn","\nDetects format! within the arguments of another macro that does\nformatting such as format! itself, "],"semicolon_inside_block":[C[0],"\n\nSuggests moving the semicolon after a block to the inside of the block, after its last\nexpression."],"swap_ptr_to_ref":["Warn","\nChecks for calls to core::mem::swap where either parameter is derived from a pointer\n\n Why is this "],"type_id_on_box":["Warn","\nLooks for calls to as Any>::type_id.\n\n Why is this bad?\nThis most certainly does not "],"redundant_feature_names":[C[0],"\nChecks for feature names with prefix use-, with- or suffix -support\n\n Why is this bad?\nThese prefix"],"arc_with_non_send_sync":["Warn",".\nThis lint warns when you use Arc with a type that does not implement Send or Sync.\n\n Why is this b"],"implicit_saturating_sub":["Warn","\nChecks for implicit saturating subtraction.\n\n Why is this bad?\nSimplicity and readability. Instead "],"range_step_by_zero":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nRange::step_by(0) used to be linted si"],"unnecessary_wraps":[C[0],"\nChecks for private functions that only return Ok or Some.\n\n Why is this bad?\nIt is not meaningful t"],"char_lit_as_u8":["Warn","\nChecks for expressions where a character literal is cast\nto u8 and suggests using a byte literal in"],"cloned_instead_of_copied":[C[0],"\nChecks for usage of cloned() on an Iterator or Option where\ncopied() could be used instead.\n\n Why i"],"manual_rem_euclid":["Warn","\nChecks for an expression like ((x % 4) + 4) % 4 which is a common manual reimplementation\nof x.rem_"],"same_name_method":[C[0],"\nIt lints if a struct has two methods with the same name:\none from a trait, another not from trait.\n"],"toplevel_ref_arg":["Warn","\nChecks for function arguments and let bindings denoted as\nref.\n\n Why is this bad?\nThe ref declarati"],"manual_retain":["Warn","\nChecks for code to be replaced by .retain().\n Why is this bad?\n.retain() is simpler and avoids need"],"needless_else":["Warn","\nChecks for empty else branches.\n\n Why is this bad?\nAn empty else branch does nothing and can be rem"],"needless_range_loop":["Warn","\nChecks for looping over the range of 0..len of some\ncollection just to get the values by index.\n\n W"],"diverging_sub_expression":["Warn","\nChecks for diverging calls that are not match arms or\nstatements.\n\n Why is this bad?\nIt is often co"],"lossy_float_literal":[C[0],"\nChecks for whole number float literals that\ncannot be represented as the underlying type without lo"],"index_refutable_slice":[C[0],"\nThe lint checks for slice bindings in patterns that are only used to\naccess individual slice values"],"missing_trait_methods":[C[0],"\nChecks if a provided method is used implicitly by a trait\nimplementation. A usage example would be "],"uninit_assumed_init":["Deny","\nChecks for MaybeUninit::uninit().assume_init().\n\n Why is this bad?\nFor most types, this is undefine"],"bytes_count_to_len":["Warn","\nIt checks for str::bytes().count() and suggests replacing it with\nstr::len().\n\n Why is this bad?\nst"],"into_iter_on_ref":["Warn","\nChecks for into_iter calls on references which should be replaced by iter\nor iter_mut.\n\n Why is thi"],"new_without_default":["Warn","\nChecks for public types with a pub fn new() -> Self method and no\nimplementation of\n[Default](https"],"unnecessary_find_map":["Warn","\nChecks for find_map calls that could be replaced by find or map. More\nspecifically it checks if the"],"suspicious_arithmetic_impl":["Warn","\nLints for suspicious operations in impls of arithmetic operators, e.g.\nsubtracting elements in an A"],"double_parens":["Warn","\nChecks for unnecessary double parentheses.\n\n Why is this bad?\nThis makes code harder to read and mi"],"exhaustive_enums":[C[0],"\nWarns on any exported enums that are not tagged [non_exhaustive]\n\n Why is this bad?\nExhaustive enum"],"unnecessary_fold":["Warn","\nChecks for usage of fold when a more succinct alternative exists.\nSpecifically, this checks for fol"],"unnecessary_self_imports":[C[0],"\nChecks for imports ending in ::{self}.\n\n Why is this bad?\nIn most cases, this can be written much m"],"unreadable_literal":[C[0],"\nWarns if a long integral or floating-point constant does\nnot contain underscores.\n\n Why is this bad"],"inconsistent_digit_grouping":["Warn","\nWarns if an integral or floating-point constant is\ngrouped inconsistently with underscores.\n\n Why i"],"iter_overeager_cloned":["Warn","\nChecks for usage of _.cloned().() where call to .cloned() can be postponed.\n\n Why is this bad"],"multi_assignments":["Warn","\nChecks for nested assignments.\n\n Why is this bad?\nWhile this is in most cases already a type mismat"],"redundant_static_lifetimes":["Warn","\nChecks for constants and statics with an explicit 'static lifetime.\n\n Why is this bad?\nAdding 'stat"],"disallowed_methods":["Warn","\nDenies the configured methods and functions in clippy.toml\n\nNote: Even though this lint is warn-by-"],"needless_lifetimes":["Warn","\nChecks for lifetime annotations which can be removed by\nrelying on lifetime elision.\n\n Why is this "],"option_filter_map":["Warn","\nChecks for indirect collection of populated Option\n\n Why is this bad?\nOption is like a collection o"],"inline_fn_without_body":["Deny","\nChecks for [inline] on trait methods without bodies\n\n Why is this bad?\nOnly implementations of trai"],"cast_ptr_alignment":[C[0],"\nChecks for casts, using as or pointer::cast,\nfrom a less-strictly-aligned pointer to a more-strictl"],"mut_mutex_lock":["Warn","\nChecks for &mut Mutex::lock calls\n\n Why is this bad?\nMutex::lock is less efficient than\ncalling Mut"],"manual_bits":["Warn","\nChecks for usage of std::mem::size_of::() * 8 when\nT::BITS is available.\n\n Why is this bad?\nCan "],"modulo_one":["Deny","\nChecks for getting the remainder of a division by one or minus\none.\n\n Why is this bad?\nThe result f"],"cmp_null":["Warn","\nThis lint checks for equality comparisons with ptr::null\n\n Why is this bad?\nIt's easier and more re"],"should_assert_eq":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for assert!(a == b)"],"unused_io_amount":["Deny","\nChecks for unused written/read amount.\n\n Why is this bad?\nio::Write::write(_vectored) and\nio::Read:"],"create_dir":[C[0],"\nChecks usage of std::fs::create_dir and suggest using std::fs::create_dir_all instead.\n\n Why is thi"],"recursive_format_impl":["Deny","\nChecks for format trait implementations (e.g. Display) with a recursive call to itself\nwhich uses s"],"too_many_arguments":["Warn","\nChecks for functions with too many parameters.\n\n Why is this bad?\nFunctions with lots of parameters"],"float_cmp":[C[0],"\nChecks for (in-)equality comparisons on floating-point\nvalues (apart from zero), except in function"],"default_instead_of_iter_empty":["Warn","\nIt checks for std::iter::Empty::default() and suggests replacing it with\nstd::iter::empty().\n Why i"],"pattern_type_mismatch":[C[0],"\nChecks for patterns that aren't exact representations of the types\nthey are applied to.\n\nTo satisfy"],"shadow_unrelated":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, either without an initialization o"],"trivially_copy_pass_by_ref":[C[0],"\nChecks for functions taking arguments by reference, where\nthe argument type is Copy and small enoug"],"used_underscore_binding":[C[0],"\nChecks for the use of bindings with a single leading\nunderscore.\n\n Why is this bad?\nA single leadin"],"map_unwrap_or":[C[0],"\nChecks for usage of option.map(_).unwrap_or(_) or option.map(_).unwrap_or_else(_) or\nresult.map(_)."],"useless_let_if_seq":[C[0],"\nChecks for variable declarations immediately followed by a\nconditional affectation.\n\n Why is this b"],"useless_transmute":["Warn","\nChecks for transmutes to the original type of the object\nand transmutes that could be a cast.\n\n Why"],"while_let_on_iterator":["Warn","\nChecks for while let expressions on iterators.\n\n Why is this bad?\nReadability. A simple for loop is"],"write_literal":["Warn","\nThis lint warns about the use of literals as write!/writeln! args.\n\n Why is this bad?\nUsing literal"],"tests_outside_test_module":[C[0],"\nTriggers when a testing function (marked with the [test] attribute) isn't inside a testing module\n("],"filter_map_identity":["Warn","\nChecks for usage of filter_map(|x| x).\n\n Why is this bad?\nReadability, this can be written more con"],"iter_on_single_items":[C[0],"\n\nChecks for calls to iter, iter_mut or into_iter on collections containing a single item\n\n Why is t"],"large_stack_frames":[C[0],"\nChecks for functions that use a lot of stack space.\n\nThis often happens when constructing a large t"],"needless_bitwise_bool":[C[0],"\nChecks for usage of bitwise and/or operators between booleans, where performance may be improved by"],"negative_feature_names":[C[0],"\nChecks for negative feature names with prefix no- or not-\n\n Why is this bad?\nFeatures are supposed "],"redundant_clone":[C[0],"\nChecks for a redundant clone() (and its relatives) which clones an owned\nvalue that is going to be "],"is_digit_ascii_radix":["Warn","\nFinds usages of [char::is_digit](https://doc.rust-lang.org/stable/std/primitive.char.htmlmethod.is_"],"separated_literal_suffix":[C[0],"\nWarns if literal suffixes are separated by an underscore.\nTo enforce separated literal suffix style"],"useless_asref":["Warn","\nChecks for usage of .as_ref() or .as_mut() where the\ntypes before and after the call are the same.\n"],"assign_op_pattern":["Warn","\nChecks for a = a op b or a = b commutative_op a\npatterns.\n\n Why is this bad?\nThese can be written a"],"wildcard_imports":[C[0],"\nChecks for wildcard imports use _::*.\n\n Why is this bad?\nwildcard imports can pollute the namespace"],"explicit_deref_methods":[C[0],"\nChecks for explicit deref() or deref_mut() method calls.\n\n Why is this bad?\nDereferencing by &*x or"],"useless_format":["Warn","\nChecks for the use of format!(\"string literal with no\nargument\") and format!(\"{}\", foo) where foo i"],"chars_last_cmp":["Warn","\nChecks for usage of _.chars().last() or\n_.chars().next_back() on a str to check if it ends with a g"],"misaligned_transmute":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint should never have applied to"],"invalid_upcast_comparisons":[C[0],"\nChecks for comparisons where the relation is always either\ntrue or false, but where one side has be"],"collapsible_else_if":["Warn","\nChecks for collapsible else { if ... } expressions\nthat can be collapsed to else if ....\n\n Why is t"],"ineffective_bit_mask":["Deny","\nChecks for bit masks in comparisons which can be removed\nwithout changing the outcome. The basic st"],"from_over_into":["Warn","\nSearches for implementations of the Into<..> trait and suggests to implement From<..> instead.\n\n Wh"],"declare_interior_mutable_const":["Warn","\nChecks for declaration of const items which is interior\nmutable (e.g., contains a Cell, Mutex, Atom"],"map_collect_result_unit":["Warn","\nChecks for usage of _.map(_).collect::().\n\n Why is this bad?\nUsing try_for_each inste"],"extend_from_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::extend, wh"],"needless_option_take":["Warn","\nChecks for calling take function after as_ref.\n\n Why is this bad?\nRedundant code. take writes None "],"enum_variant_names":["Warn","\nDetects enumeration variants that are prefixed or suffixed\nby the same characters.\n\n Why is this ba"],"needless_option_as_deref":["Warn","\nChecks for no-op uses of Option::{as_deref, as_deref_mut},\nfor example, Option<&T>::as_deref() retu"],"option_if_let_else":[C[0],"\nLints usage of if let Some(v) = ... { y } else { x } and\nmatch .. { Some(v) => y, None/_ => x } whi"],"uninlined_format_args":[C[0],"\nDetect when a variable is not inlined in a format string,\nand suggests to inline it.\n\n Why is this "],"unnecessary_to_owned":["Warn","\nChecks for unnecessary calls to [ToOwned::to_owned](https://doc.rust-lang.org/std/borrow/trait.ToOw"],"unused_rounding":[C[0],"\n\nDetects cases where a whole-number literal float is being rounded, using\nthe floor, ceil, or round"],"branches_sharing_code":[C[0],"\nChecks if the if and else block contain shared code that can be\nmoved out of the blocks.\n\n Why is t"],"default_union_representation":[C[0],"\nDisplays a warning when a union is declared with the default representation (without a [repr(C)] at"],"manual_find":["Warn","\nChecks for manual implementations of Iterator::find\n\n Why is this bad?\nIt doesn't affect performanc"],"needless_collect":[C[0],"\nChecks for functions collecting an iterator when collect\nis not needed.\n\n Why is this bad?\ncollect "],"neg_cmp_op_on_partial_ord":["Warn","\nChecks for the usage of negated comparison operators on types which only implement\nPartialOrd (e.g."],"reversed_empty_ranges":["Deny","\nChecks for range expressions x..y where both x and y\nare constant and x is greater to y. Also trigg"],"trim_split_whitespace":["Warn","\nWarns about calling str::trim (or variants) before str::split_whitespace.\n\n Why is this bad?\nsplit_"],"unwrap_or_else_default":["Warn","\nChecks for usage of _.unwrap_or_else(Default::default) on Option and\nResult values.\n\n Why is this b"],"size_of_ref":["Warn","\n\nChecks for calls to std::mem::size_of_val() where the argument is\na reference to a reference.\n\n Wh"],"filetype_is_file":[C[0],"\nChecks for FileType::is_file().\n\n Why is this bad?\nWhen people testing a file type with FileType::i"],"needless_for_each":[C[0],"\nChecks for usage of for_each that would be more simply written as a\nfor loop.\n\n Why is this bad?\nfo"],"needless_late_init":["Warn","\nChecks for late initializations that can be replaced by a let statement\nwith an initializer.\n\n Why "],"result_map_or_into_option":["Warn","\nChecks for usage of _.map_or(None, Some).\n\n Why is this bad?\nReadability, this can be written more "],"mutex_integer":[C[0],"\nChecks for usage of Mutex where X is an integral\ntype.\n\n Why is this bad?\nUsing a mutex just to "],"double_comparisons":["Warn","\nChecks for double comparisons that could be simplified to a single expression.\n\n\n Why is this bad?\n"],"manual_unwrap_or":["Warn","\nFinds patterns that reimplement Option::unwrap_or or Result::unwrap_or.\n\n Why is this bad?\nConcise "],"must_use_candidate":[C[0],"\nChecks for public functions that have no\n[must_use] attribute, but return something not already mar"],"no_effect":["Warn","\nChecks for statements which have no effect.\n\n Why is this bad?\nUnlike dead code, these statements a"],"needless_pass_by_ref_mut":["Warn","\nCheck if a &mut function argument is actually used mutably.\n\nBe careful if the function is publicly"],"zero_divided_by_zero":["Warn","\nChecks for 0.0 / 0.0.\n\n Why is this bad?\nIt's less readable than f32::NAN or f64::NAN.\n\n Example\nru"],"redundant_async_block":["Warn","\nChecks for async block that only returns await on a future.\n\n Why is this bad?\nIt is simpler and mo"],"same_item_push":["Warn","\nChecks whether a for loop is being used to push a constant\nvalue into a Vec.\n\n Why is this bad?\nThi"],"iter_on_empty_collections":[C[0],"\n\nChecks for calls to iter, iter_mut or into_iter on empty collections\n\n Why is this bad?\n\nIt is sim"],"almost_complete_range":["Warn","\nChecks for ranges which almost include the entire range of letters from 'a' to 'z'\nor digits from '"],"case_sensitive_file_extension_comparisons":[C[0],"\nChecks for calls to ends_with with possible file extensions\nand suggests to use a case-insensitive "],"get_first":["Warn","\nChecks for usage of x.get(0) instead of\nx.first().\n\n Why is this bad?\nUsing x.first() is easier to "],"iterator_step_by_zero":["Deny","\nChecks for calling .step_by(0) on iterators which panics.\n\n Why is this bad?\nThis very much looks l"],"ptr_as_ptr":[C[0],"\nChecks for as casts between raw pointers without changing its mutability,\nnamely *const T to *const"],"non_octal_unix_permissions":["Deny","\nChecks for non-octal values used to set Unix file permissions.\n\n Why is this bad?\nThey will be conv"],"transmute_int_to_bool":["Warn","\nChecks for transmutes from an integer to a bool.\n\n Why is this bad?\nThis might result in an invalid"],"cast_possible_wrap":[C[0],"\nChecks for casts from an unsigned type to a signed type of\nthe same size, or possibly smaller due t"],"mem_replace_with_default":["Warn","\nChecks for std::mem::replace on a value of type\nT with T::default().\n\n Why is this bad?\nstd::mem mo"],"needless_borrowed_reference":["Warn","\nChecks for bindings that needlessly destructure a reference and borrow the inner\nvalue with &ref.\n\n"],"redundant_closure_for_method_calls":[C[0],"\nChecks for closures which only invoke a method on the closure\nargument and can be replaced by refer"],"nonsensical_open_options":["Deny","\nChecks for duplicate open options as well as combinations\nthat make no sense.\n\n Why is this bad?\nIn"],"fn_to_numeric_cast_with_truncation":["Warn","\nChecks for casts of a function pointer to a numeric type not wide enough to\nstore address.\n\n Why is"],"needless_borrow":["Warn","\nChecks for address of operations (&) that are going to\nbe dereferenced immediately by the compiler."],"no_effect_replace":["Warn","\nChecks for replace statements which have no effect.\n\n Why is this bad?\nIt's either a mistake or con"],"manual_is_infinite":["Warn","\nChecks for manual is_infinite reimplementations\n(i.e., x == ::INFINITY || x == ::NEG_"],"rc_buffer":[C[0],"\nChecks for Rc and Arc when T is a mutable buffer type such as String or Vec.\n\n Why is this ba"],"result_unit_err":["Warn","\nChecks for public functions that return a Result\nwith an Err type of (). It suggests using a custom"],"string_lit_as_bytes":[C[0],"\nChecks for the as_bytes method called on string literals\nthat contain only ASCII characters.\n\n Why "],"str_to_string":[C[0],"\nThis lint checks for .to_string() method calls on values of type &str.\n\n Why is this bad?\nThe to_st"],"filter_map":["None",C[2]],"redundant_pattern_matching":["Warn","\nLint for redundant pattern matching over Result, Option,\nstd::task::Poll or std::net::IpAddr\n\n Why "],"exit":[C[0],"\nDetects calls to the exit() function which terminates the program.\n\n Why is this bad?\nExit terminat"],"single_char_pattern":["Warn","\nChecks for string methods that receive a single-character\nstr as an argument, e.g., _.split(\"x\").\n\n"],"result_large_err":["Warn","\nChecks for functions that return Result with an unusually large\nErr-variant.\n\n Why is this bad?\nA R"],"unwrap_used":[C[0],"\nChecks for .unwrap() or .unwrap_err() calls on Results and .unwrap() call on Options.\n\n Why is this"],"unit_hash":["Deny","\nDetects ().hash(_).\n\n Why is this bad?\nHashing a unit value doesn't do anything as the implementati"],"erasing_op":["Deny","\nChecks for erasing operations, e.g., x * 0.\n\n Why is this bad?\nThe whole expression can be replaced"],"float_equality_without_abs":["Warn","\nChecks for statements of the form (a - b) < f32::EPSILON or\n(a - b) < f64::EPSILON. Notes the missi"],"just_underscores_and_digits":["Warn","\nChecks if you have variables whose name consists of just\nunderscores and digits.\n\n Why is this bad?"],"transmute_num_to_bytes":["Warn","\nChecks for transmutes from a number to an array of u8\n\n Why this is bad?\nTransmutes are dangerous a"],"tuple_array_conversions":[C[0],"\nChecks for tuple<=>array conversions that are not done with .into().\n\n Why is this bad?\nIt may be u"],"if_let_mutex":["Deny","\nChecks for Mutex::lock calls in if let expression\nwith lock calls in any of the else blocks.\n\n Why "],"match_like_matches_macro":["Warn","\nChecks for match or if let expressions producing a\nbool that could be written using matches!\n\n Why"],"as_underscore":[C[0],"\nChecks for the usage of as _ conversion using inferred type.\n\n Why is this bad?\nThe conversion migh"],"empty_structs_with_brackets":[C[0],"\nFinds structs without fields (a so-called \"empty struct\") that are declared with brackets.\n\n Why is"],"missing_docs_in_private_items":[C[0],"\nWarns if there is missing doc for any private documentable item\n\n Why is this bad?\nDoc is good. *ru"],"await_holding_lock":["Warn","\nChecks for calls to await while holding a non-async-aware MutexGuard.\n\n Why is this bad?\nThe Mutex "],"wildcard_in_or_patterns":["Warn","\nChecks for wildcard pattern used with others patterns in same match arm.\n\n Why is this bad?\nWildcar"],"manual_str_repeat":["Warn","\nChecks for manual implementations of str::repeat\n\n Why is this bad?\nThese are both harder to read, "],"arithmetic_side_effects":[C[0],"\nChecks any kind of arithmetic operation of any type.\n\nOperators like +, -, * or << are usually capa"],"explicit_auto_deref":["Warn","\nChecks for dereferencing expressions which would be covered by auto-deref.\n\n Why is this bad?\nThis "],"trailing_empty_array":[C[0],"\nDisplays a warning when a struct with a trailing zero-sized array is declared without a repr attrib"],"min_ident_chars":[C[0],"\nChecks for idents which comprise of a single letter.\n\nNote: This lint can be very noisy when enable"],"needless_match":["Warn","\nChecks for unnecessary match or match-like if let returns for Option and Result\nwhen function signa"],"multiple_unsafe_ops_per_block":[C[0],"\nChecks for unsafe blocks that contain more than one unsafe operation.\n\n Why is this bad?\nCombined w"],"string_from_utf8_as_bytes":["Warn","\nCheck if the string is transformed to byte array and casted back to string.\n\n Why is this bad?\nIt's"],"collection_is_never_read":[C[0],"\nChecks for collections that are never queried.\n\n Why is this bad?\nPutting effort into constructing "],"drop_non_drop":["Warn","\nChecks for calls to std::mem::drop with a value that does not implement Drop.\n\n Why is this bad?\nCa"],"enum_glob_use":[C[0],"\nChecks for use Enum::*.\n\n Why is this bad?\nIt is usually better style to use the prefixed name of\na"],"invalid_regex":["Deny","\nChecks [regex](https://crates.io/crates/regex) creation\n(with Regex::new, RegexBuilder::new, or Reg"],"items_after_statements":[C[0],"\nChecks for items declared after some statement in a block.\n\n Why is this bad?\nItems live for the en"],"undocumented_unsafe_blocks":[C[0],"\nChecks for unsafe blocks and impls without a // SAFETY: comment\nexplaining why the unsafe operatio"],"unnecessary_owned_empty_strings":["Warn","\n\nDetects cases of owned empty strings being passed as an argument to a function expecting &str\n\n Wh"],"derive_ord_xor_partial_ord":["Deny","\nLints against manual PartialOrd and Ord implementations for types with a derived Ord\nor PartialOrd "],"unwrap_in_result":[C[0],"\nChecks for functions of type Result that contain expect() or unwrap()\n\n Why is this bad?\nThese func"],"pub_with_shorthand":[C[0],"\nChecks for usage of pub() with in.\n\n Why is this bad?\nConsistency. Use it or don't, just be co"],"needless_arbitrary_self_type":["Warn","\nThe lint checks for self in fn parameters that\nspecify the Self-type explicitly\n Why is this bad?\nI"],"suspicious_operation_groupings":[C[0],"\nChecks for unlikely usages of binary operators that are almost\ncertainly typos and/or copy/paste er"],"zst_offset":["Deny","\nChecks for offset(_), wrapping_{add, sub}, etc. on raw pointers to\nzero-sized types\n\n Why is this b"],"missing_errors_doc":[C[0],"\nChecks the doc comments of publicly visible functions that\nreturn a Result type and warns if there "],"chars_next_cmp":["Warn","\nChecks for usage of .chars().next() on a str to check\nif it starts with a given char.\n\n Why is this"],"duplicate_underscore_argument":["Warn","\nChecks for function arguments having the similar names\ndiffering by an underscore.\n\n Why is this ba"],"op_ref":["Warn","\nChecks for arguments to == which have their address\ntaken to satisfy a bound\nand suggests to derefe"],"string_add":[C[0],"\nChecks for all instances of x + _ where x is of type\nString, but only if [string_add_assign](string"],"absurd_extreme_comparisons":["Deny","\nChecks for comparisons where one side of the relation is\neither the minimum or maximum value for it"],"ptr_cast_constness":[C[0],"\nChecks for as casts between raw pointers which change its constness, namely *const T to\n*mut T and "],"single_char_add_str":["Warn","\nWarns when using push_str/insert_str with a single-character string literal\nwhere push/insert with "],"self_named_constructors":["Warn","\nWarns when constructors have the same name as their types.\n\n Why is this bad?\nRepeating the name of"],"macro_use_imports":[C[0],"\nChecks for [macro_use] use....\n\n Why is this bad?\nSince the Rust 2018 edition you can import\nmacro'"],"ref_patterns":[C[0],"\nChecks for usages of the ref keyword.\n Why is this bad?\nThe ref keyword can be confusing for people"],"lines_filter_map_ok":["Warn","\nChecks for usage of lines.filter_map(Result::ok) or lines.flat_map(Result::ok)\nwhen lines has type "],"search_is_some":["Warn","\nChecks for an iterator or string search (such as find(),\nposition(), or rposition()) followed by a "],"single_call_fn":[C[0],"\nChecks for functions that are only used once. Does not lint tests.\n\n Why is this bad?\nIt's usually "],"unnecessary_unwrap":["Warn","\nChecks for calls of unwrap[_err]() that cannot fail.\n\n Why is this bad?\nUsing if let or match is mo"],"cast_lossless":[C[0],"\nChecks for casts between numerical types that may\nbe replaced by safe conversion functions.\n\n Why i"],"verbose_bit_mask":[C[0],"\nChecks for bit masks that can be replaced by a call\nto trailing_zeros\n\n Why is this bad?\nx.trailing"],"allow_attributes_without_reason":[C[0],"\nChecks for attributes that allow lints without a reason.\n\n(This requires the lint_reasons feature)\n"],"borrow_as_ptr":[C[0],"\nChecks for the usage of &expr as *const T or\n&mut expr as *mut T, and suggest using ptr::addr_of or"],"box_collection":["Warn","\nChecks for usage of Box where T is a collection such as Vec anywhere in the code.\nCheck the [Box"],"match_on_vec_items":[C[0],"\nChecks for match vec[idx] or match vec[n..m].\n\n Why is this bad?\nThis can panic at runtime.\n\n Examp"],"missing_fields_in_debug":[C[0],"\nChecks for manual [core::fmt::Debug](https://doc.rust-lang.org/core/fmt/trait.Debug.html) implement"],"zero_ptr":["Warn","\nCatch casts from 0 to some pointer type\n\n Why is this bad?\nThis generally means null and is better "],"manual_is_finite":["Warn","\nChecks for manual is_finite reimplementations\n(i.e., x != ::INFINITY && x != ::NEG_IN"],"manual_main_separator_str":["Warn","\nChecks for references on std::path::MAIN_SEPARATOR.to_string() used\nto build a &str.\n\n Why is this "],"suspicious_map":["Warn","\nChecks for calls to map followed by a count.\n\n Why is this bad?\nIt looks suspicious. Maybe map was "],"implicit_clone":[C[0],"\nChecks for the usage of _.to_owned(), vec.to_vec(), or similar when calling _.clone() would be clea"],"self_assignment":["Deny","\nChecks for explicit self-assignments.\n\n Why is this bad?\nSelf-assignments are redundant and unlikel"],"big_endian_bytes":[C[0],"\nChecks for the usage of the to_be_bytes method and/or the function from_be_bytes.\n\n Why is this bad"],"missing_assert_message":[C[0],"\nChecks assertions without a custom panic message.\n\n Why is this bad?\nWithout a good custom message,"],"option_map_or_none":["Warn","\nChecks for usage of _.map_or(None, _).\n\n Why is this bad?\nReadability, this can be written more con"],"try_err":[C[0],"\nChecks for usage of Err(x)?.\n\n Why is this bad?\nThe ? operator is designed to allow calls that\ncan "],"let_underscore_untyped":[C[0],"\nChecks for let _ = without a type annotation, and suggests to either provide one,\nor remove "],"manual_find_map":["Warn","\nChecks for usage of _.find(_).map(_) that can be written more simply\nas find_map(_).\n\n Why is this "],"only_used_in_recursion":["Warn","\nChecks for arguments that are only used in recursion with no side-effects.\n\n Why is this bad?\nIt co"],"unneeded_wildcard_pattern":["Warn","\nChecks for tuple patterns with a wildcard\npattern (_) is next to a rest pattern (..).\n\n_NOTE_: Whil"],"unnecessary_join":[C[0],"\nChecks for usage of .collect::>().join(\"\") on iterators.\n\n Why is this bad?\n.collect::<"],"needless_raw_string_hashes":["Warn","\nChecks for raw string literals with an unnecessary amount of hashes around them.\n\n Why is this bad?"],"expect_fun_call":["Warn","\nChecks for calls to .expect(&format!(...)), .expect(foo(..)),\netc., and suggests to use unwrap_or_e"],"redundant_slicing":["Warn","\nChecks for redundant slicing expressions which use the full range, and\ndo not change the type.\n\n Wh"],"cast_possible_truncation":[C[0],"\nChecks for casts between numerical types that may\ntruncate large values. This is expected behavior,"],"deprecated_semver":["Deny","\nChecks for [deprecated] annotations with a since\nfield that is not a valid semantic version.\n\n Why "],"overflow_check_conditional":["Warn","\nDetects classic underflow/overflow checks.\n\n Why is this bad?\nMost classic C underflow/overflow che"],"option_map_unit_fn":["Warn","\nChecks for usage of option.map(f) where f is a function\nor closure that returns the unit type ().\n\n"],"use_self":[C[0],"\nChecks for unnecessary repetition of structure name when a\nreplacement with Self is applicable.\n\n W"],"if_not_else":[C[0],"\nChecks for usage of ! or != in an if condition with an\nelse branch.\n\n Why is this bad?\nNegations re"],"needless_return":["Warn","\nChecks for return statements at the end of a block.\n\n Why is this bad?\nRemoving the return and semi"],"redundant_pattern":["Warn","\nChecks for patterns in the form name @ _.\n\n Why is this bad?\nIt's almost always more readable to ju"],"cognitive_complexity":[C[0],"\nChecks for methods with high cognitive complexity.\n\n Why is this bad?\nMethods of high cognitive com"],"useless_vec":["Warn","\nChecks for usage of vec![..] when using [..] would\nbe possible.\n\n Why is this bad?\nThis is less eff"],"must_use_unit":["Warn","\nChecks for a [must_use] attribute on\nunit-returning functions and methods.\n\n Why is this bad?\nUnit "],"needless_bool":["Warn","\nChecks for expressions of the form if c { true } else {\nfalse } (or vice versa) and suggests using "],"equatable_if_let":[C[0],"\nChecks for pattern matchings that can be expressed using equality.\n\n Why is this bad?\n\n* It reads b"],"suspicious_to_owned":["Warn","\nChecks for the usage of _.to_owned(), on a Cow<'_, _>.\n\n Why is this bad?\nCalling to_owned() on a C"],"await_holding_refcell_ref":["Warn","\nChecks for calls to await while holding a RefCell Ref or RefMut.\n\n Why is this bad?\nRefCell refs on"],"bool_comparison":["Warn","\nChecks for expressions of the form x == true,\nx != true and order comparisons such as x < true (or "],"manual_is_ascii_check":["Warn","\nSuggests to use dedicated built-in methods,\nis_ascii_(lowercase|uppercase|digit) for checking on co"],"approx_constant":["Deny","\nChecks for floating point literals that approximate\nconstants which are defined in\n[std::f32::const"],"rc_clone_in_vec_init":["Warn","\nChecks for reference-counted pointers (Arc, Rc, rc::Weak, and sync::Weak)\nin vec![elem; len]\n\n Why "],"missing_inline_in_public_items":[C[0],"\nIt lints if an exported function, method, trait method with default impl,\nor trait method impl is n"],"print_literal":["Warn","\nThis lint warns about the use of literals as print!/println! args.\n\n Why is this bad?\nUsing literal"],"explicit_counter_loop":["Warn","\nChecks for loops over slices with an explicit counter\nand suggests the use of .enumerate().\n\n Why i"],"unimplemented":[C[0],"\nChecks for usage of unimplemented!.\n\n Why is this bad?\nThis macro should not be present in producti"],"inline_asm_x86_att_syntax":[C[0],"\nChecks for usage of AT&T x86 assembly syntax.\n\n Why is this bad?\nThe lint has been enabled to indic"],"future_not_send":[C[0],"\nThis lint requires Future implementations returned from\nfunctions and methods to implement the Send"],"nonminimal_bool":["Warn","\nChecks for boolean expressions that can be written more\nconcisely.\n\n Why is this bad?\nReadability o"],"match_wild_err_arm":[C[0],"\nChecks for arm which matches all errors with Err(_)\nand take drastic actions like panic!.\n\n Why is "],"read_zero_byte_vec":["Deny","\nThis lint catches reads into a zero-length Vec.\nEspecially in the case of a call to with_capacity, "],"repeat_once":["Warn","\nChecks for usage of .repeat(1) and suggest the following method for each types.\n- .to_string() for "],"flat_map_identity":["Warn","\nChecks for usage of flat_map(|x| x).\n\n Why is this bad?\nReadability, this can be written more conci"],"missing_const_for_fn":[C[0],"\nSuggests the use of const in functions and methods where possible.\n\n Why is this bad?\nNot having th"],"upper_case_acronyms":["Warn","\nChecks for fully capitalized names and optionally names containing a capitalized acronym.\n\n Why is "],"fn_null_check":["Deny","\nChecks for comparing a function pointer to null.\n\n Why is this bad?\nFunction pointers are assumed t"],"blocks_in_if_conditions":["Warn","\nChecks for if conditions that use blocks containing an\nexpression, statements or conditions that us"],"borrow_deref_ref":["Warn","\nChecks for &*(&T).\n\n Why is this bad?\nDereferencing and then borrowing a reference value has no eff"],"little_endian_bytes":[C[0],"\nChecks for the usage of the to_le_bytes method and/or the function from_le_bytes.\n\n Why is this bad"],"suspicious_xor_used_as_pow":[C[0],"\nWarns for a Bitwise XOR (^) operator being probably confused as a powering. It will not trigger if "],"unnecessary_box_returns":[C[0],"\n\nChecks for a return type containing a Box where T implements Sized\n\nThe lint ignores Box whe"],"default_constructed_unit_structs":["Warn","\nChecks for construction on unit struct using default.\n\n Why is this bad?\nThis adds code complexity "],"same_functions_in_if_condition":[C[0],"\nChecks for consecutive ifs with the same function call.\n\n Why is this bad?\nThis is probably a copy "],"items_after_test_module":["Warn","\nTriggers if an item is declared after the testing module marked with [cfg(test)].\n Why is this bad?"],"option_option":[C[0],"\nChecks for usage of Option> in function signatures and type\ndefinitions\n\n Why is this bad"],"possible_missing_comma":["Deny","\nChecks for possible missing comma in an array. It lints if\nan array element is a binary operator ex"],"expl_impl_clone_on_copy":[C[0],"\nChecks for explicit Clone implementations for Copy\ntypes.\n\n Why is this bad?\nTo avoid surprising be"],"while_let_loop":["Warn","\nDetects loop + match combinations that are easier\nwritten as a while let loop.\n\n Why is this bad?\nT"],"bytes_nth":["Warn","\nChecks for the use of .bytes().nth().\n\n Why is this bad?\n.as_bytes().get() is more efficient and mo"],"suspicious_else_formatting":["Warn","\nChecks for formatting of else. It lints if the else\nis followed immediately by a newline or the els"],"cast_sign_loss":[C[0],"\nChecks for casts from a signed to an unsigned numerical\ntype. In this case, negative values wrap ar"],"assign_ops":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint is too subjective, not havin"],"seek_to_start_instead_of_rewind":["Warn","\n\nChecks for jumps to the start of a stream that implements Seek\nand uses the seek method providing "],"missing_panics_doc":[C[0],"\nChecks the doc comments of publicly visible functions that\nmay panic and warns if there is no Pani"],"eq_op":["Deny","\nChecks for equal operands to comparison, logical and\nbitwise, difference and division binary operat"],"manual_strip":["Warn","\nSuggests using strip_{prefix,suffix} over str::{starts,ends}_with and slicing using\nthe pattern's l"],"string_add_assign":[C[0],"\nChecks for string appends of the form x = x + y (without\nlet!).\n\n Why is this bad?\nIt's not really "],"redundant_closure":["Warn","\nChecks for closures which just call another function where\nthe function can be called directly. uns"],"filter_map_next":[C[0],"\nChecks for usage of _.filter_map(_).next().\n\n Why is this bad?\nReadability, this can be written mor"],"single_component_path_imports":["Warn","\nChecking for imports with single component use path.\n\n Why is this bad?\nImport with single componen"],"std_instead_of_core":[C[0],"\n\nFinds items imported through std when available through core.\n\n Why is this bad?\n\nCrates which hav"],"mutex_atomic":[C[0],"\nChecks for usage of Mutex where an atomic will do.\n\n Why is this bad?\nUsing a mutex just to make"],"float_arithmetic":[C[0],"\nChecks for float arithmetic.\n\n Why is this bad?\nFor some embedded systems or kernel development, it"],"explicit_write":["Warn","\nChecks for usage of write!() / writeln()! which can be\nreplaced with (e)print!() / (e)println!()\n\n "],"needless_raw_strings":[C[0],"\nChecks for raw string literals where a string literal can be used instead.\n\n Why is this bad?\nIt's "],"inline_asm_x86_intel_syntax":[C[0],"\nChecks for usage of Intel x86 assembly syntax.\n\n Why is this bad?\nThe lint has been enabled to indi"],"manual_let_else":[C[0],"\n\nWarn of cases where let...else could be used\n\n Why is this bad?\n\nlet...else provides a standard co"],"unit_arg":["Warn","\nChecks for passing a unit value as an argument to a function without using a\nunit literal (()).\n\n W"],"assertions_on_constants":["Warn","\nChecks for assert!(true) and assert!(false) calls.\n\n Why is this bad?\nWill be optimized out by the "],"bool_to_int_with_if":[C[0],"\nInstead of using an if statement to convert a bool to an int,\nthis lint suggests using a from() fun"],"unsafe_derive_deserialize":[C[0],"\nChecks for deriving serde::Deserialize on a type that\nhas methods using unsafe.\n\n Why is this bad?\n"],"init_numbered_fields":["Warn","\nChecks for tuple structs initialized with field syntax.\nIt will however not lint if a base initiali"],"let_underscore_lock":["Deny","\nChecks for let _ = sync_lock. This supports mutex and rwlock in\nparking_lot. For std locks see the "],"let_with_type_underscore":["Warn","\nDetects when a variable is declared with an explicit type of _.\n Why is this bad?\nIt adds noise, : "],"neg_multiply":["Warn","\nChecks for multiplication by -1 as a form of negation.\n\n Why is this bad?\nIt's more readable to jus"],"mut_range_bound":["Warn","\nChecks for loops which have a range bound that is a mutable variable\n\n Why is this bad?\nOne might t"],"transmute_ptr_to_ptr":[C[0],"\nChecks for transmutes from a pointer to a pointer, or\nfrom a reference to a reference.\n\n Why is thi"],"print_stderr":[C[0],"\nChecks for printing on *stderr*. The purpose of this lint\nis to catch debugging remnants.\n\n Why is "],"assertions_on_result_states":[C[0],"\nChecks for assert!(r.is_ok()) or assert!(r.is_err()) calls.\n\n Why is this bad?\nAn assertion failure"],"cast_slice_from_raw_parts":["Warn","\nChecks for a raw slice being cast to a slice pointer\n\n Why is this bad?\nThis can result in multiple"],"fn_to_numeric_cast_any":[C[0],"\nChecks for casts of a function pointer to any integer type.\n\n Why is this bad?\nCasting a function p"],"derivable_impls":["Warn","\nDetects manual std::default::Default implementations that are identical to a derived implementation"],"misnamed_getters":["Warn","\nChecks for getter methods that return a field that doesn't correspond\nto the name of the method, wh"],"mod_module_files":[C[0],"\nChecks that module layout uses only self named module files, bans mod.rs files.\n\n Why is this bad?\n"],"wrong_self_convention":["Warn","\nChecks for methods with certain name prefixes or suffixes, and which\ndo not adhere to standard conv"],"disallowed_names":["Warn","\nChecks for usage of disallowed names for variables, such\nas foo.\n\n Why is this bad?\nThese names are"],"fn_params_excessive_bools":[C[0],"\nChecks for excessive use of\nbools in function definitions.\n\n Why is this bad?\nCalls to such functio"],"shadow_same":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, while just changing reference leve"],"blanket_clippy_restriction_lints":["Warn","\nChecks for warn/deny/forbid attributes targeting the whole clippy::restriction category.\n\n Why is t"],"single_match_else":[C[0],"\nChecks for matches with two arms where an if let else will\nusually suffice.\n\n Why is this bad?\nJust"],"similar_names":[C[0],"\nChecks for names that are very similar and thus confusing.\n\nNote: this lint looks for similar names"],"unusual_byte_groupings":["Warn","\nWarns if hexadecimal or binary literals are not grouped\nby nibble or byte.\n\n Why is this bad?\nNegat"],"empty_drop":[C[0],"\nChecks for empty Drop implementations.\n\n Why is this bad?\nEmpty Drop implementations have no effect"],"manual_non_exhaustive":["Warn","\nChecks for manual implementations of the non-exhaustive pattern.\n\n Why is this bad?\nUsing the [non_"],"empty_line_after_outer_attr":[C[0],"\nChecks for empty lines after outer attributes\n\n Why is this bad?\nMost likely the attribute was mean"],"no_mangle_with_rust_abi":[C[0],"\nChecks for Rust ABI functions with the [no_mangle] attribute.\n\n Why is this bad?\nThe Rust ABI is no"],"ptr_arg":["Warn","\nThis lint checks for function arguments of type &String, &Vec,\n&PathBuf, and Cow<_>. It will also s"],"cast_abs_to_unsigned":["Warn","\nChecks for usage of the abs() method that cast the result to unsigned.\n\n Why is this bad?\nThe unsig"],"disallowed_macros":["Warn","\nDenies the configured macros in clippy.toml\n\nNote: Even though this lint is warn-by-default, it wil"],"implicit_return":[C[0],"\nChecks for missing return statements at the end of a block.\n\n Why is this bad?\nActually omitting th"],"exhaustive_structs":[C[0],"\nWarns on any exported structss that are not tagged [non_exhaustive]\n\n Why is this bad?\nExhaustive s"],"iter_nth_zero":["Warn","\nChecks for the use of iter.nth(0).\n\n Why is this bad?\niter.next() is equivalent to\niter.nth(0), as "],"semicolon_if_nothing_returned":[C[0],"\nLooks for blocks of expressions and fires if the last expression returns\n() but is not followed by "],"excessive_precision":["Warn","\nChecks for float literals with a precision greater\nthan that supported by the underlying type.\n\n Wh"],"identity_op":["Warn","\nChecks for identity operations, e.g., x + 0.\n\n Why is this bad?\nThis code can be removed without ch"],"skip_while_next":["Warn","\nChecks for usage of _.skip_while(condition).next().\n\n Why is this bad?\nReadability, this can be wri"],"uninit_vec":["Deny","\nChecks for set_len() call that creates Vec with uninitialized elements.\nThis is commonly caused by "],"iter_kv_map":["Warn","\n\nChecks for iterating a map (HashMap or BTreeMap) and\nignoring either the keys or values.\n\n Why is "],"pub_without_shorthand":[C[0],"\nChecks for usage of pub() without in.\n\nNote: As you cannot write a module's path in pub()"],"todo":[C[0],"\nChecks for usage of todo!.\n\n Why is this bad?\nThis macro should not be present in production code\n\n"],"no_effect_underscore_binding":[C[0],"\nChecks for binding to underscore prefixed variable without side-effects.\n\n Why is this bad?\nUnlike "],"float_cmp_const":[C[0],"\nChecks for (in-)equality comparisons on floating-point\nvalue and constant, except in functions call"],"multiple_crate_versions":[C[0],"\nChecks to see if multiple versions of a crate are being\nused.\n\n Why is this bad?\nThis bloats the si"],"excessive_nesting":["Warn","\nChecks for blocks which are nested beyond a certain threshold.\n\nNote: Even though this lint is warn"]}; \ No newline at end of file +var C=["Allow","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThe avoid_breaking_exported_api config","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint has been replaced by manual_"];var lintsIndex={"unused_unit":["Warn","\nChecks for unit (()) expressions that can be removed.\n\n Why is this bad?\nSuch expressions add no va"],"unused_collect":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint has been superseded by [must"],"identity_op":["Warn","\nChecks for identity operations, e.g., x + 0.\n\n Why is this bad?\nThis code can be removed without ch"],"transmute_int_to_bool":["Warn","\nChecks for transmutes from an integer to a bool.\n\n Why is this bad?\nThis might result in an invalid"],"while_let_loop":["Warn","\nDetects loop + match combinations that are easier\nwritten as a while let loop.\n\n Why is this bad?\nT"],"box_default":["Warn","\nchecks for Box::new(T::default()), which is better written as\nBox::<T>::default().\n\n Why is this ba"],"float_arithmetic":[C[0],"\nChecks for float arithmetic.\n\n Why is this bad?\nFor some embedded systems or kernel development, it"],"implicit_saturating_sub":["Warn","\nChecks for implicit saturating subtraction.\n\n Why is this bad?\nSimplicity and readability. Instead "],"needless_arbitrary_self_type":["Warn","\nThe lint checks for self in fn parameters that\nspecify the Self-type explicitly\n Why is this bad?\nI"],"iter_not_returning_iterator":[C[0],"\nDetects methods named iter or iter_mut that do not have a return type that implements Iterator.\n\n W"],"redundant_slicing":["Warn","\nChecks for redundant slicing expressions which use the full range, and\ndo not change the type.\n\n Wh"],"declare_interior_mutable_const":["Warn","\nChecks for declaration of const items which is interior\nmutable (e.g., contains a Cell, Mutex, Atom"],"cast_enum_truncation":["Warn","\nChecks for casts from an enum type to an integral type which will definitely truncate the\nvalue.\n\n "],"infinite_iter":["Deny","\nChecks for iteration that is guaranteed to be infinite.\n\n Why is this bad?\nWhile there may be place"],"from_iter_instead_of_collect":[C[0],"\nChecks for from_iter() function calls on types that implement the FromIterator\ntrait.\n\n Why is this"],"invisible_characters":["Deny","\nChecks for invisible Unicode characters in the code.\n\n Why is this bad?\nHaving an invisible charact"],"shadow_unrelated":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, either without an initialization o"],"suboptimal_flops":[C[0],"\nLooks for floating-point expressions that\ncan be expressed using built-in methods to improve both\na"],"bool_comparison":["Warn","\nChecks for expressions of the form x == true,\nx != true and order comparisons such as x < true (or "],"tuple_array_conversions":[C[0],"\nChecks for tuple<=>array conversions that are not done with .into().\n\n Why is this bad?\nIt may be u"],"extend_with_drain":["Warn","\nChecks for occurrences where one vector gets extended instead of append\n\n Why is this bad?\nUsing ap"],"reversed_empty_ranges":["Deny","\nChecks for range expressions x..y where both x and y\nare constant and x is greater to y. Also trigg"],"overly_complex_bool_expr":["Deny","\nChecks for boolean expressions that contain terminals that\ncan be eliminated.\n\n Why is this bad?\nTh"],"suspicious_command_arg_space":["Warn","\n\nChecks for Command::arg() invocations that look like they\nshould be multiple arguments instead, su"],"write_with_newline":["Warn","\nThis lint warns when you use write!() with a format\nstring that\nends in a newline.\n\n Why is this ba"],"manual_memcpy":["Warn","\nChecks for for-loops that manually copy items between\nslices that could be optimized by having a me"],"ptr_offset_with_cast":["Warn","\nChecks for usage of the offset pointer method with a usize casted to an\nisize.\n\n Why is this bad?\nI"],"unit_return_expecting_ord":["Deny","\nChecks for functions that expect closures of type\nFn(...) -> Ord where the implemented closure retu"],"manual_bits":["Warn","\nChecks for usage of std::mem::size_of::<T>() * 8 when\nT::BITS is available.\n\n Why is this bad?\nCan "],"unnecessary_fold":["Warn","\nChecks for usage of fold when a more succinct alternative exists.\nSpecifically, this checks for fol"],"blanket_clippy_restriction_lints":["Warn","\nChecks for warn/deny/forbid attributes targeting the whole clippy::restriction category.\n\n Why is t"],"unnested_or_patterns":[C[0],"\nChecks for unnested or-patterns, e.g., Some(0) | Some(2) and\nsuggests replacing the pattern with a "],"disallowed_script_idents":[C[0],"\nChecks for usage of unicode scripts other than those explicitly allowed\nby the lint config.\n\nThis l"],"assign_op_pattern":["Warn","\nChecks for a = a op b or a = b commutative_op a\npatterns.\n\n Why is this bad?\nThese can be written a"],"iter_skip_next":["Warn","\nChecks for usage of .skip(x).next() on iterators.\n\n Why is this bad?\n.nth(x) is cleaner\n\n Example\nr"],"missing_spin_loop":["Warn","\nChecks for empty spin loops\n\n Why is this bad?\nThe loop body should have something like thread::par"],"naive_bytecount":[C[0],"\nChecks for naive byte counts\n\n Why is this bad?\nThe [bytecount](https://crates.io/crates/bytecount)"],"needless_pass_by_ref_mut":["Warn","\nCheck if a &mut function argument is actually used mutably.\n\nBe careful if the function is publicly"],"range_zip_with_len":["Warn","\nChecks for zipping a collection with the range of\n0.._.len().\n\n Why is this bad?\nThe code is better"],"needless_return":["Warn","\nChecks for return statements at the end of a block.\n\n Why is this bad?\nRemoving the return and semi"],"unstable_as_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::as_slice, "],"unused_async":[C[0],"\nChecks for functions that are declared async but have no .awaits inside of them.\n\n Why is this bad?"],"zero_prefixed_literal":["Warn","\nWarns if an integral constant literal starts with 0.\n\n Why is this bad?\nIn some languages (includin"],"partialeq_ne_impl":["Warn","\nChecks for manual re-implementations of PartialEq::ne.\n\n Why is this bad?\nPartialEq::ne is required"],"comparison_to_empty":["Warn","\nChecks for comparing to an empty slice such as \"\" or [],\nand suggests using .is_empty() where appli"],"is_digit_ascii_radix":["Warn","\nFinds usages of [char::is_digit](https://doc.rust-lang.org/stable/std/primitive.char.htmlmethod.is_"],"print_stderr":[C[0],"\nChecks for printing on *stderr*. The purpose of this lint\nis to catch debugging remnants.\n\n Why is "],"shadow_reuse":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, while reusing the original value.\n"],"chars_next_cmp":["Warn","\nChecks for usage of .chars().next() on a str to check\nif it starts with a given char.\n\n Why is this"],"seek_to_start_instead_of_rewind":["Warn","\n\nChecks for jumps to the start of a stream that implements Seek\nand uses the seek method providing "],"rest_pat_in_fully_bound_structs":[C[0],"\nChecks for unnecessary '..' pattern binding on struct when all fields are explicitly matched.\n\n Why"],"match_single_binding":["Warn","\nChecks for useless match that binds to only one value.\n\n Why is this bad?\nReadability and needless "],"let_underscore_untyped":[C[0],"\nChecks for let _ = <expr> without a type annotation, and suggests to either provide one,\nor remove "],"as_ptr_cast_mut":[C[0],"\nChecks for the result of a &self-taking as_ptr being cast to a mutable pointer\n\n Why is this bad?\nS"],"unnecessary_literal_unwrap":["Warn","\nChecks for .unwrap() related calls on Results and Options that are constructed.\n\n Why is this bad?\n"],"invalid_upcast_comparisons":[C[0],"\nChecks for comparisons where the relation is always either\ntrue or false, but where one side has be"],"or_fun_call":[C[0],"\nChecks for calls to .or(foo(..)), .unwrap_or(foo(..)),\n.or_insert(foo(..)) etc., and suggests to us"],"redundant_pattern_matching":["Warn","\nLint for redundant pattern matching over Result, Option,\nstd::task::Poll or std::net::IpAddr\n\n Why "],"manual_unwrap_or":["Warn","\nFinds patterns that reimplement Option::unwrap_or or Result::unwrap_or.\n\n Why is this bad?\nConcise "],"clear_with_drain":[C[0],"\nChecks for usage of .drain(..) for the sole purpose of clearing a container.\n\n Why is this bad?\nThi"],"assertions_on_constants":["Warn","\nChecks for assert!(true) and assert!(false) calls.\n\n Why is this bad?\nWill be optimized out by the "],"same_functions_in_if_condition":[C[0],"\nChecks for consecutive ifs with the same function call.\n\n Why is this bad?\nThis is probably a copy "],"unwrap_in_result":[C[0],"\nChecks for functions of type Result that contain expect() or unwrap()\n\n Why is this bad?\nThese func"],"duplicate_underscore_argument":["Warn","\nChecks for function arguments having the similar names\ndiffering by an underscore.\n\n Why is this ba"],"filetype_is_file":[C[0],"\nChecks for FileType::is_file().\n\n Why is this bad?\nWhen people testing a file type with FileType::i"],"explicit_into_iter_loop":[C[0],"\nChecks for loops on y.into_iter() where y will do, and\nsuggests the latter.\n\n Why is this bad?\nRead"],"large_futures":[C[0],"\nIt checks for the size of a Future created by async fn or async {}.\n\n Why is this bad?\nDue to the c"],"needless_raw_strings":[C[0],"\nChecks for raw string literals where a string literal can be used instead.\n\n Why is this bad?\nIt's "],"self_assignment":["Deny","\nChecks for explicit self-assignments.\n\n Why is this bad?\nSelf-assignments are redundant and unlikel"],"fn_to_numeric_cast_with_truncation":["Warn","\nChecks for casts of a function pointer to a numeric type not wide enough to\nstore address.\n\n Why is"],"async_yields_async":["Deny","\nChecks for async blocks that yield values of types\nthat can themselves be awaited.\n\n Why is this ba"],"doc_markdown":[C[0],"\nChecks for the presence of _, :: or camel-case words\noutside ticks in documentation.\n\n Why is this "],"imprecise_flops":[C[0],"\nLooks for floating-point expressions that\ncan be expressed using built-in methods to improve accura"],"iter_next_loop":["Deny","\nChecks for loops on x.next().\n\n Why is this bad?\nnext() returns either Some(value) if there was a\nv"],"unsafe_removed_from_name":["Warn","\nChecks for imports that remove \"unsafe\" from an item's\nname.\n\n Why is this bad?\nRenaming makes it l"],"option_as_ref_deref":["Warn","\nChecks for usage of _.as_ref().map(Deref::deref) or its aliases (such as String::as_str).\n\n Why is "],"zero_divided_by_zero":["Warn","\nChecks for 0.0 / 0.0.\n\n Why is this bad?\nIt's less readable than f32::NAN or f64::NAN.\n\n Example\nru"],"use_debug":[C[0],"\nChecks for usage of Debug formatting. The purpose of this\nlint is to catch debugging remnants.\n\n Wh"],"invalid_regex":["Deny","\nChecks [regex](https://crates.io/crates/regex) creation\n(with Regex::new, RegexBuilder::new, or Reg"],"cast_possible_truncation":[C[0],"\nChecks for casts between numerical types that may\ntruncate large values. This is expected behavior,"],"eq_op":["Deny","\nChecks for equal operands to comparison, logical and\nbitwise, difference and division binary operat"],"linkedlist":[C[0],"\nChecks for usage of any LinkedList, suggesting to use a\nVec or a VecDeque (formerly called RingBuf)"],"module_name_repetitions":[C[0],"\nDetects type names that are prefixed or suffixed by the\ncontaining module's name.\n\n Why is this bad"],"bytes_nth":["Warn","\nChecks for the use of .bytes().nth().\n\n Why is this bad?\n.as_bytes().get() is more efficient and mo"],"fn_to_numeric_cast_any":[C[0],"\nChecks for casts of a function pointer to any integer type.\n\n Why is this bad?\nCasting a function p"],"manual_ok_or":[C[0],"\n\nFinds patterns that reimplement Option::ok_or.\n\n Why is this bad?\n\nConcise code helps focusing on "],"unicode_not_nfc":[C[0],"\nChecks for string literals that contain Unicode in a form\nthat is not equal to its\n[NFC-recompositi"],"must_use_candidate":[C[0],"\nChecks for public functions that have no\n[must_use] attribute, but return something not already mar"],"option_option":[C[0],"\nChecks for usage of Option<Option<_>> in function signatures and type\ndefinitions\n\n Why is this bad"],"pub_with_shorthand":[C[0],"\nChecks for usage of pub(<loc>) with in.\n\n Why is this bad?\nConsistency. Use it or don't, just be co"],"await_holding_refcell_ref":["Warn","\nChecks for calls to await while holding a RefCell Ref or RefMut.\n\n Why is this bad?\nRefCell refs on"],"extend_from_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::extend, wh"],"borrow_deref_ref":["Warn","\nChecks for &*(&T).\n\n Why is this bad?\nDereferencing and then borrowing a reference value has no eff"],"cast_nan_to_int":["Warn","\nChecks for a known NaN float being cast to an integer\n\n Why is this bad?\nNaNs are cast into zero, s"],"cast_lossless":[C[0],"\nChecks for casts between numerical types that may\nbe replaced by safe conversion functions.\n\n Why i"],"iter_overeager_cloned":["Warn","\nChecks for usage of _.cloned().<func>() where call to .cloned() can be postponed.\n\n Why is this bad"],"get_first":["Warn","\nChecks for usage of x.get(0) instead of\nx.first().\n\n Why is this bad?\nUsing x.first() is easier to "],"empty_structs_with_brackets":[C[0],"\nFinds structs without fields (a so-called \"empty struct\") that are declared with brackets.\n\n Why is"],"print_with_newline":["Warn","\nThis lint warns when you use print!() with a format\nstring that ends in a newline.\n\n Why is this ba"],"empty_line_after_outer_attr":[C[0],"\nChecks for empty lines after outer attributes\n\n Why is this bad?\nMost likely the attribute was mean"],"little_endian_bytes":[C[0],"\nChecks for the usage of the to_le_bytes method and/or the function from_le_bytes.\n\n Why is this bad"],"match_bool":[C[0],"\nChecks for matches where match expression is a bool. It\nsuggests to replace the expression with an "],"out_of_bounds_indexing":["Deny","\nChecks for out of bounds array indexing with a constant\nindex.\n\n Why is this bad?\nThis will always "],"maybe_misused_cfg":["Warn","\nChecks for [cfg(features = \"...\")] and suggests to replace it with\n[cfg(feature = \"...\")].\n\n Why is"],"iter_on_empty_collections":[C[0],"\n\nChecks for calls to iter, iter_mut or into_iter on empty collections\n\n Why is this bad?\n\nIt is sim"],"iter_count":["Warn","\nChecks for the use of .iter().count().\n\n Why is this bad?\n.len() is more efficient and more\nreadabl"],"zst_offset":["Deny","\nChecks for offset(_), wrapping_{add, sub}, etc. on raw pointers to\nzero-sized types\n\n Why is this b"],"useless_vec":["Warn","\nChecks for usage of vec![..] when using [..] would\nbe possible.\n\n Why is this bad?\nThis is less eff"],"cast_enum_constructor":["Warn","\nChecks for casts from an enum tuple constructor to an integer.\n\n Why is this bad?\nThe cast is easil"],"double_parens":["Warn","\nChecks for unnecessary double parentheses.\n\n Why is this bad?\nThis makes code harder to read and mi"],"dbg_macro":[C[0],"\nChecks for usage of the [dbg!](https://doc.rust-lang.org/std/macro.dbg.html) macro.\n\n Why is this b"],"rc_buffer":[C[0],"\nChecks for Rc<T> and Arc<T> when T is a mutable buffer type such as String or Vec.\n\n Why is this ba"],"pub_without_shorthand":[C[0],"\nChecks for usage of pub(<loc>) without in.\n\nNote: As you cannot write a module's path in pub(<loc>)"],"await_holding_lock":["Warn","\nChecks for calls to await while holding a non-async-aware MutexGuard.\n\n Why is this bad?\nThe Mutex "],"iter_next_slice":["Warn","\nChecks for usage of iter().next() on a Slice or an Array\n\n Why is this bad?\nThese can be shortened "],"trivially_copy_pass_by_ref":[C[0],"\nChecks for functions taking arguments by reference, where\nthe argument type is Copy and small enoug"],"slow_vector_initialization":["Warn","\nChecks slow zero-filled vector initialization\n\n Why is this bad?\nThese structures are non-idiomatic"],"modulo_arithmetic":[C[0],"\nChecks for modulo arithmetic.\n\n Why is this bad?\nThe results of modulo (%) operation might differ\nd"],"as_underscore":[C[0],"\nChecks for the usage of as _ conversion using inferred type.\n\n Why is this bad?\nThe conversion migh"],"panic":[C[0],"\nChecks for usage of panic!.\n\n Why is this bad?\npanic! will stop the execution of the executable\n\n E"],"redundant_at_rest_pattern":["Warn","\nChecks for [all @ ..] patterns.\n\n Why is this bad?\nIn all cases, all works fine and can often make "],"swap_ptr_to_ref":["Warn","\nChecks for calls to core::mem::swap where either parameter is derived from a pointer\n\n Why is this "],"default_numeric_fallback":[C[0],"\nChecks for usage of unconstrained numeric literals which may cause default numeric fallback in type"],"float_cmp":[C[0],"\nChecks for (in-)equality comparisons on floating-point\nvalues (apart from zero), except in function"],"match_same_arms":[C[0],"\nChecks for match with identical arm bodies.\n\nNote: Does not lint on wildcards if the non_exhaustive"],"question_mark_used":[C[0],"\nChecks for expressions that use the question mark operator and rejects them.\n\n Why is this bad?\nSom"],"let_underscore_lock":["Deny","\nChecks for let _ = sync_lock. This supports mutex and rwlock in\nparking_lot. For std locks see the "],"string_add":[C[0],"\nChecks for all instances of x + _ where x is of type\nString, but only if [string_add_assign](string"],"alloc_instead_of_core":[C[0],"\n\nFinds items imported through alloc when available through core.\n\n Why is this bad?\n\nCrates which h"],"get_last_with_len":["Warn","\nChecks for usage of x.get(x.len() - 1) instead of\nx.last().\n\n Why is this bad?\nUsing x.last() is ea"],"map_err_ignore":[C[0],"\nChecks for instances of map_err(|_| Some::Enum)\n\n Why is this bad?\nThis map_err throws away the ori"],"enum_variant_names":["Warn","\nDetects enumeration variants that are prefixed or suffixed\nby the same characters.\n\n Why is this ba"],"suspicious_unary_op_formatting":["Warn","\nChecks the formatting of a unary operator on the right hand side\nof a binary operator. It lints if "],"just_underscores_and_digits":["Warn","\nChecks if you have variables whose name consists of just\nunderscores and digits.\n\n Why is this bad?"],"unit_cmp":["Deny","\nChecks for comparisons to unit. This includes all binary\ncomparisons (like == and <) and asserts.\n\n"],"useless_conversion":["Warn","\nChecks for Into, TryInto, From, TryFrom, or IntoIter calls\nwhich uselessly convert to the same type"],"println_empty_string":["Warn","\nThis lint warns when you use println!(\"\") to\nprint a newline.\n\n Why is this bad?\nYou should use pri"],"large_types_passed_by_value":[C[0],"\nChecks for functions taking arguments by value, where\nthe argument type is Copy and large enough to"],"macro_use_imports":[C[0],"\nChecks for [macro_use] use....\n\n Why is this bad?\nSince the Rust 2018 edition you can import\nmacro'"],"useless_transmute":["Warn","\nChecks for transmutes to the original type of the object\nand transmutes that could be a cast.\n\n Why"],"useless_asref":["Warn","\nChecks for usage of .as_ref() or .as_mut() where the\ntypes before and after the call are the same.\n"],"manual_find_map":["Warn","\nChecks for usage of _.find(_).map(_) that can be written more simply\nas find_map(_).\n\n Why is this "],"nonsensical_open_options":["Deny","\nChecks for duplicate open options as well as combinations\nthat make no sense.\n\n Why is this bad?\nIn"],"inherent_to_string":["Warn","\nChecks for the definition of inherent methods with a signature of to_string(&self) -> String.\n\n Why"],"needless_splitn":["Warn","\nChecks for usage of str::splitn (or str::rsplitn) where using str::split would be the same.\n Why is"],"self_named_module_files":[C[0],"\nChecks that module layout uses only mod.rs files.\n\n Why is this bad?\nHaving multiple module layout "],"type_repetition_in_bounds":[C[0],"\nThis lint warns about unnecessary type repetitions in trait bounds\n\n Why is this bad?\nRepeating the"],"collapsible_str_replace":["Warn","\nChecks for consecutive calls to str::replace (2 or more)\nthat can be collapsed into a single call.\n"],"misnamed_getters":["Warn","\nChecks for getter methods that return a field that doesn't correspond\nto the name of the method, wh"],"single_char_pattern":["Warn","\nChecks for string methods that receive a single-character\nstr as an argument, e.g., _.split(\"x\").\n\n"],"trivial_regex":[C[0],"\nChecks for trivial [regex](https://crates.io/crates/regex)\ncreation (with Regex::new, RegexBuilder:"],"too_many_arguments":["Warn","\nChecks for functions with too many parameters.\n\n Why is this bad?\nFunctions with lots of parameters"],"doc_link_with_quotes":[C[0],"\nDetects the syntax ['foo'] in documentation comments (notice quotes instead of backticks)\noutside o"],"filter_map_identity":["Warn","\nChecks for usage of filter_map(|x| x).\n\n Why is this bad?\nReadability, this can be written more con"],"disallowed_macros":["Warn","\nDenies the configured macros in clippy.toml\n\nNote: Even though this lint is warn-by-default, it wil"],"format_in_format_args":["Warn","\nDetects format! within the arguments of another macro that does\nformatting such as format! itself, "],"map_flatten":["Warn","\nChecks for usage of _.map(_).flatten(_) on Iterator and Option\n\n Why is this bad?\nReadability, this"],"min_max":["Deny","\nChecks for expressions where std::cmp::min and max are\nused to clamp values, but switched so that t"],"missing_safety_doc":["Warn","\nChecks for the doc comments of publicly visible\nunsafe functions and warns if there is no Safety s"],"cast_slice_from_raw_parts":["Warn","\nChecks for a raw slice being cast to a slice pointer\n\n Why is this bad?\nThis can result in multiple"],"await_holding_invalid_type":["Warn","\nAllows users to configure types which should not be held across await\nsuspension points.\n\n Why is t"],"derivable_impls":["Warn","\nDetects manual std::default::Default implementations that are identical to a derived implementation"],"let_underscore_future":["Warn","\nChecks for let _ = <expr> where the resulting type of expr implements Future\n\n Why is this bad?\nFut"],"permissions_set_readonly_false":["Warn","\nChecks for calls to std::fs::Permissions.set_readonly with argument false.\n\n Why is this bad?\nOn Un"],"min_ident_chars":[C[0],"\nChecks for idents which comprise of a single letter.\n\nNote: This lint can be very noisy when enable"],"should_assert_eq":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for assert!(a == b)"],"single_component_path_imports":["Warn","\nChecking for imports with single component use path.\n\n Why is this bad?\nImport with single componen"],"temporary_assignment":["Warn","\nChecks for construction of a structure or tuple just to\nassign a value in it.\n\n Why is this bad?\nRe"],"clone_on_copy":["Warn","\nChecks for usage of .clone() on a Copy type.\n\n Why is this bad?\nThe only reason Copy types implemen"],"forget_non_drop":["Warn","\nChecks for calls to std::mem::forget with a value that does not implement Drop.\n\n Why is this bad?\n"],"manual_string_new":[C[0],"\n\nChecks for usage of \"\" to create a String, such as \"\".to_string(), \"\".to_owned(),\nString::from(\"\")"],"multiple_inherent_impl":[C[0],"\nChecks for multiple inherent implementations of a struct\n\n Why is this bad?\nSplitting the implement"],"print_stdout":[C[0],"\nChecks for printing on *stdout*. The purpose of this lint\nis to catch debugging remnants.\n\n Why is "],"manual_split_once":["Warn","\nChecks for usage of str::splitn(2, _)\n\n Why is this bad?\nsplit_once is both clearer in intent and s"],"unstable_as_mut_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::as_mut_sli"],"cast_sign_loss":[C[0],"\nChecks for casts from a signed to an unsigned numerical\ntype. In this case, negative values wrap ar"],"checked_conversions":[C[0],"\nChecks for explicit bounds checking when casting.\n\n Why is this bad?\nReduces the readability of sta"],"ineffective_bit_mask":["Deny","\nChecks for bit masks in comparisons which can be removed\nwithout changing the outcome. The basic st"],"non_octal_unix_permissions":["Deny","\nChecks for non-octal values used to set Unix file permissions.\n\n Why is this bad?\nThey will be conv"],"fn_address_comparisons":["Deny","\nChecks for comparisons with an address of a function item.\n\n Why is this bad?\nFunction item address"],"duration_subsec":["Warn","\nChecks for calculation of subsecond microseconds or milliseconds\nfrom other Duration methods.\n\n Why"],"string_lit_as_bytes":[C[0],"\nChecks for the as_bytes method called on string literals\nthat contain only ASCII characters.\n\n Why "],"unnecessary_join":[C[0],"\nChecks for usage of .collect::<Vec<String>>().join(\"\") on iterators.\n\n Why is this bad?\n.collect::<"],"derived_hash_with_manual_eq":["Deny","\nLints against manual PartialEq implementations for types with a derived Hash\nimplementation.\n\n Why "],"mismatched_target_os":["Deny","\nChecks for cfg attributes having operating systems used in target family position.\n\n Why is this ba"],"len_without_is_empty":["Warn","\nChecks for items that implement .len() but not\n.is_empty().\n\n Why is this bad?\nIt is good custom to"],"wildcard_in_or_patterns":["Warn","\nChecks for wildcard pattern used with others patterns in same match arm.\n\n Why is this bad?\nWildcar"],"manual_saturating_arithmetic":["Warn","\nChecks for .checked_add/sub(x).unwrap_or(MAX/MIN).\n\n Why is this bad?\nThese can be written simply w"],"to_string_in_format_args":["Warn","\nChecks for [ToString::to_string](https://doc.rust-lang.org/std/string/trait.ToString.htmltymethod.t"],"option_env_unwrap":["Deny","\nChecks for usage of option_env!(...).unwrap() and\nsuggests usage of the env! macro.\n\n Why is this b"],"ptr_eq":["Warn","\nUse std::ptr::eq when applicable\n\n Why is this bad?\nptr::eq can be used to compare &T references\n(w"],"filter_next":["Warn","\nChecks for usage of _.filter(_).next().\n\n Why is this bad?\nReadability, this can be written more co"],"default_union_representation":[C[0],"\nDisplays a warning when a union is declared with the default representation (without a [repr(C)] at"],"incorrect_clone_impl_on_copy_type":["Deny","\nChecks for manual implementations of Clone when Copy is already implemented.\n\n Why is this bad?\nIf "],"approx_constant":["Deny","\nChecks for floating point literals that approximate\nconstants which are defined in\n[std::f32::const"],"inline_fn_without_body":["Deny","\nChecks for [inline] on trait methods without bodies\n\n Why is this bad?\nOnly implementations of trai"],"large_stack_arrays":[C[0],"\nChecks for local arrays that may be too large.\n\n Why is this bad?\nLarge local arrays may cause stac"],"mem_replace_with_default":["Warn","\nChecks for std::mem::replace on a value of type\nT with T::default().\n\n Why is this bad?\nstd::mem mo"],"if_not_else":[C[0],"\nChecks for usage of ! or != in an if condition with an\nelse branch.\n\n Why is this bad?\nNegations re"],"octal_escapes":["Warn","\nChecks for \\0 escapes in string and byte literals that look like octal\ncharacter escapes in C.\n\n Wh"],"module_inception":["Warn","\nChecks for modules that have the same name as their\nparent module\n\n Why is this bad?\nA typical begi"],"uninit_assumed_init":["Deny","\nChecks for MaybeUninit::uninit().assume_init().\n\n Why is this bad?\nFor most types, this is undefine"],"uninit_vec":["Deny","\nChecks for set_len() call that creates Vec with uninitialized elements.\nThis is commonly caused by "],"writeln_empty_string":["Warn","\nThis lint warns when you use writeln!(buf, \"\") to\nprint a newline.\n\n Why is this bad?\nYou should us"],"wrong_self_convention":["Warn","\nChecks for methods with certain name prefixes or suffixes, and which\ndo not adhere to standard conv"],"explicit_deref_methods":[C[0],"\nChecks for explicit deref() or deref_mut() method calls.\n\n Why is this bad?\nDereferencing by &*x or"],"bool_assert_comparison":["Warn","\nThis lint warns about boolean comparisons in assert-like macros.\n\n Why is this bad?\nIt is shorter t"],"float_equality_without_abs":["Warn","\nChecks for statements of the form (a - b) < f32::EPSILON or\n(a - b) < f64::EPSILON. Notes the missi"],"assertions_on_result_states":[C[0],"\nChecks for assert!(r.is_ok()) or assert!(r.is_err()) calls.\n\n Why is this bad?\nAn assertion failure"],"mutable_key_type":["Warn","\nChecks for sets/maps with mutable key types.\n\n Why is this bad?\nAll of HashMap, HashSet, BTreeMap a"],"manual_map":["Warn","\nChecks for usage of match which could be implemented using map\n\n Why is this bad?\nUsing the map met"],"invalid_null_ptr_usage":["Deny","\nThis lint checks for invalid usages of ptr::null.\n\n Why is this bad?\nThis causes undefined behavior"],"collection_is_never_read":[C[0],"\nChecks for collections that are never queried.\n\n Why is this bad?\nPutting effort into constructing "],"from_str_radix_10":["Warn","\n\nChecks for function invocations of the form primitive::from_str_radix(s, 10)\n\n Why is this bad?\n\nT"],"deref_by_slicing":[C[0],"\nChecks for slicing expressions which are equivalent to dereferencing the\nvalue.\n\n Why is this bad?\n"],"misaligned_transmute":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint should never have applied to"],"double_must_use":["Warn","\nChecks for a [must_use] attribute without\nfurther information on functions and methods that return "],"redundant_closure_for_method_calls":[C[0],"\nChecks for closures which only invoke a method on the closure\nargument and can be replaced by refer"],"result_unit_err":["Warn","\nChecks for public functions that return a Result\nwith an Err type of (). It suggests using a custom"],"string_extend_chars":["Warn","\nChecks for the use of .extend(s.chars()) where s is a\n&str or String.\n\n Why is this bad?\n.push_str("],"unnecessary_safety_doc":[C[0],"\nChecks for the doc comments of publicly visible\nsafe functions and traits and warns if there is a "],"needless_pub_self":["Warn","\nChecks for usage of pub(self) and pub(in self).\n\n Why is this bad?\nIt's unnecessary, omitting the p"],"manual_strip":["Warn","\nSuggests using strip_{prefix,suffix} over str::{starts,ends}_with and slicing using\nthe pattern's l"],"map_unwrap_or":[C[0],"\nChecks for usage of option.map(_).unwrap_or(_) or option.map(_).unwrap_or_else(_) or\nresult.map(_)."],"unused_format_specs":["Warn","\nDetects [formatting parameters] that have no effect on the output of\nformat!(), println!() or simil"],"vec_resize_to_zero":["Deny","\nFinds occurrences of Vec::resize(0, an_int)\n\n Why is this bad?\nThis is probably an argument inversi"],"precedence":["Warn","\nChecks for operations where precedence may be unclear\nand suggests to add parentheses. Currently it"],"single_call_fn":[C[0],"\nChecks for functions that are only used once. Does not lint tests.\n\n Why is this bad?\nIt's usually "],"almost_swapped":["Deny","\nChecks for foo = bar; bar = foo sequences.\n\n Why is this bad?\nThis looks like a failed attempt to s"],"manual_non_exhaustive":["Warn","\nChecks for manual implementations of the non-exhaustive pattern.\n\n Why is this bad?\nUsing the [non_"],"disallowed_methods":["Warn","\nDenies the configured methods and functions in clippy.toml\n\nNote: Even though this lint is warn-by-"],"implicit_clone":[C[0],"\nChecks for the usage of _.to_owned(), vec.to_vec(), or similar when calling _.clone() would be clea"],"needless_late_init":["Warn","\nChecks for late initializations that can be replaced by a let statement\nwith an initializer.\n\n Why "],"deref_addrof":["Warn","\nChecks for usage of *& and *&mut in expressions.\n\n Why is this bad?\nImmediately dereferencing a ref"],"double_neg":["Warn","\nDetects expressions of the form --x.\n\n Why is this bad?\nIt can mislead C/C++ programmers to think x"],"new_without_default":["Warn","\nChecks for public types with a pub fn new() -> Self method and no\nimplementation of\n[Default](https"],"pub_use":[C[0],"\n\nRestricts the usage of pub use ...\n\n Why is this bad?\n\npub use is usually fine, but a project may "],"range_plus_one":[C[0],"\nChecks for exclusive ranges where 1 is added to the\nupper bound, e.g., x..(y+1).\n\n Why is this bad?"],"partial_pub_fields":[C[0],"\nChecks whether partial fields of a struct are public.\n\nEither make all fields of a type public, or "],"string_slice":[C[0],"\nChecks for slice operations on strings\n\n Why is this bad?\nUTF-8 characters span multiple bytes, and"],"undocumented_unsafe_blocks":[C[0],"\nChecks for unsafe blocks and impls without a // SAFETY: comment\nexplaining why the unsafe operatio"],"vtable_address_comparisons":["Deny","\nChecks for comparisons with an address of a trait vtable.\n\n Why is this bad?\nComparing trait object"],"needless_bool_assign":["Warn","\nChecks for expressions of the form if c { x = true } else { x = false }\n(or vice versa) and suggest"],"mut_range_bound":["Warn","\nChecks for loops which have a range bound that is a mutable variable\n\n Why is this bad?\nOne might t"],"unused_self":[C[0],"\nChecks methods that contain a self argument but don't use it\n\n Why is this bad?\nIt may be clearer t"],"impl_trait_in_params":[C[0],"\nLints when impl Trait is being used in a function's parameters.\n Why is this bad?\nTurbofish syntax "],"unsafe_derive_deserialize":[C[0],"\nChecks for deriving serde::Deserialize on a type that\nhas methods using unsafe.\n\n Why is this bad?\n"],"float_cmp_const":[C[0],"\nChecks for (in-)equality comparisons on floating-point\nvalue and constant, except in functions call"],"exhaustive_enums":[C[0],"\nWarns on any exported enums that are not tagged [non_exhaustive]\n\n Why is this bad?\nExhaustive enum"],"str_to_string":[C[0],"\nThis lint checks for .to_string() method calls on values of type &str.\n\n Why is this bad?\nThe to_st"],"panicking_unwrap":["Deny","\nChecks for calls of unwrap[_err]() that will always fail.\n\n Why is this bad?\nIf panicking is desire"],"allow_attributes_without_reason":[C[0],"\nChecks for attributes that allow lints without a reason.\n\n(This requires the lint_reasons feature)\n"],"debug_assert_with_mut_call":[C[0],"\nChecks for function/method calls with a mutable\nparameter in debug_assert!, debug_assert_eq! and de"],"redundant_field_names":["Warn","\nChecks for fields in struct literals where shorthands\ncould be used.\n\n Why is this bad?\nIf the fiel"],"unwrap_or_else_default":["Warn","\nChecks for usage of _.unwrap_or_else(Default::default) on Option and\nResult values.\n\n Why is this b"],"redundant_feature_names":[C[0],"\nChecks for feature names with prefix use-, with- or suffix -support\n\n Why is this bad?\nThese prefix"],"unchecked_duration_subtraction":[C[0],"\nLints subtraction between an [Instant] and a [Duration].\n\n Why is this bad?\nUnchecked subtraction c"],"unnecessary_cast":["Warn","\nChecks for casts to the same type, casts of int literals to integer types, casts of float\nliterals "],"wildcard_enum_match_arm":[C[0],"\nChecks for wildcard enum matches using _.\n\n Why is this bad?\nNew enum variants added by library upd"],"needless_pass_by_value":[C[0],"\nChecks for functions taking arguments by value, but not\nconsuming them in its\nbody.\n\n Why is this b"],"needless_parens_on_range_literals":["Warn","\nThe lint checks for parenthesis on literals in range statements that are\nsuperfluous.\n\n Why is this"],"never_loop":["Deny","\nChecks for loops that will always break, return or\ncontinue an outer loop.\n\n Why is this bad?\nThis "],"large_digit_groups":[C[0],"\nWarns if the digits of an integral or floating-point\nconstant are grouped into groups that\nare too "],"else_if_without_else":[C[0],"\nChecks for usage of if expressions with an else if branch,\nbut without a final else branch.\n\n Why i"],"missing_fields_in_debug":[C[0],"\nChecks for manual [core::fmt::Debug](https://doc.rust-lang.org/core/fmt/trait.Debug.html) implement"],"let_unit_value":["Warn","\nChecks for binding a unit value.\n\n Why is this bad?\nA unit value cannot usefully be used anywhere. "],"iter_with_drain":[C[0],"\nChecks for usage of .drain(..) on Vec and VecDeque for iteration.\n\n Why is this bad?\n.into_iter() i"],"crosspointer_transmute":["Warn","\nChecks for transmutes between a type T and *T.\n\n Why is this bad?\nIt's easy to mistakenly transmute"],"let_and_return":["Warn","\nChecks for let-bindings, which are subsequently\nreturned.\n\n Why is this bad?\nIt is just extraneous "],"mixed_case_hex_literals":["Warn","\nWarns on hexadecimal literals with mixed-case letter\ndigits.\n\n Why is this bad?\nIt looks confusing."],"size_of_in_element_count":["Deny","\nDetects expressions where\nsize_of::<T> or size_of_val::<T> is used as a\ncount of elements of type T"],"op_ref":["Warn","\nChecks for arguments to == which have their address\ntaken to satisfy a bound\nand suggests to derefe"],"match_on_vec_items":[C[0],"\nChecks for match vec[idx] or match vec[n..m].\n\n Why is this bad?\nThis can panic at runtime.\n\n Examp"],"char_lit_as_u8":["Warn","\nChecks for expressions where a character literal is cast\nto u8 and suggests using a byte literal in"],"items_after_test_module":["Warn","\nTriggers if an item is declared after the testing module marked with [cfg(test)].\n Why is this bad?"],"iter_on_single_items":[C[0],"\n\nChecks for calls to iter, iter_mut or into_iter on collections containing a single item\n\n Why is t"],"missing_docs_in_private_items":[C[0],"\nWarns if there is missing doc for any private documentable item\n\n Why is this bad?\nDoc is good. *ru"],"wrong_transmute":["Deny","\nChecks for transmutes that can't ever be correct on any\narchitecture.\n\n Why is this bad?\nIt's basic"],"inefficient_to_string":[C[0],"\nChecks for usage of .to_string() on an &&T where\nT implements ToString directly (like &&str or &&St"],"unused_peekable":[C[0],"\nChecks for the creation of a peekable iterator that is never .peek()ed\n\n Why is this bad?\nCreating "],"disallowed_names":["Warn","\nChecks for usage of disallowed names for variables, such\nas foo.\n\n Why is this bad?\nThese names are"],"verbose_bit_mask":[C[0],"\nChecks for bit masks that can be replaced by a call\nto trailing_zeros\n\n Why is this bad?\nx.trailing"],"expect_fun_call":["Warn","\nChecks for calls to .expect(&format!(...)), .expect(foo(..)),\netc., and suggests to use unwrap_or_e"],"find_map":["None",C[2]],"let_with_type_underscore":["Warn","\nDetects when a variable is declared with an explicit type of _.\n Why is this bad?\nIt adds noise, : "],"ref_patterns":[C[0],"\nChecks for usages of the ref keyword.\n Why is this bad?\nThe ref keyword can be confusing for people"],"many_single_char_names":[C[0],"\nChecks for too many variables whose name consists of a\nsingle character.\n\n Why is this bad?\nIt's ha"],"explicit_write":["Warn","\nChecks for usage of write!() / writeln()! which can be\nreplaced with (e)print!() / (e)println!()\n\n "],"main_recursion":["Warn","\nChecks for recursion using the entrypoint.\n\n Why is this bad?\nApart from special setups (which we c"],"print_in_format_impl":["Warn","\nChecks for usage of println, print, eprintln or eprint in an\nimplementation of a formatting trait.\n"],"transmute_ptr_to_ref":["Warn","\nChecks for transmutes from a pointer to a reference.\n\n Why is this bad?\nThis can always be rewritte"],"useless_attribute":["Deny","\nChecks for extern crate and use items annotated with\nlint attributes.\n\nThis lint permits lint attri"],"manual_slice_size_calculation":["Warn","\nWhen a is &[T], detect a.len() * size_of::<T>() and suggest size_of_val(a)\ninstead.\n\n Why is this b"],"semicolon_inside_block":[C[0],"\n\nSuggests moving the semicolon after a block to the inside of the block, after its last\nexpression."],"mutex_integer":[C[0],"\nChecks for usage of Mutex<X> where X is an integral\ntype.\n\n Why is this bad?\nUsing a mutex just to "],"toplevel_ref_arg":["Warn","\nChecks for function arguments and let bindings denoted as\nref.\n\n Why is this bad?\nThe ref declarati"],"tests_outside_test_module":[C[0],"\nTriggers when a testing function (marked with the [test] attribute) isn't inside a testing module\n("],"map_identity":["Warn","\nChecks for instances of map(f) where f is the identity function.\n\n Why is this bad?\nIt can be writt"],"ptr_cast_constness":[C[0],"\nChecks for as casts between raw pointers which change its constness, namely *const T to\n*mut T and "],"redundant_closure":["Warn","\nChecks for closures which just call another function where\nthe function can be called directly. uns"],"collapsible_if":["Warn","\nChecks for nested if statements which can be collapsed\nby &&-combining their conditions.\n\n Why is t"],"empty_enum":[C[0],"\nChecks for enums with no variants.\n\nAs of this writing, the never_type is still a\nnightly-only expe"],"drain_collect":["Warn","\nChecks for calls to .drain() that clear the collection, immediately followed by a call to .collect("],"inherent_to_string_shadow_display":["Deny","\nChecks for the definition of inherent methods with a signature of to_string(&self) -> String and if"],"lines_filter_map_ok":["Warn","\nChecks for usage of lines.filter_map(Result::ok) or lines.flat_map(Result::ok)\nwhen lines has type "],"derive_partial_eq_without_eq":[C[0],"\nChecks for types that derive PartialEq and could implement Eq.\n\n Why is this bad?\nIf a type T deriv"],"trailing_empty_array":[C[0],"\nDisplays a warning when a struct with a trailing zero-sized array is declared without a repr attrib"],"drop_non_drop":["Warn","\nChecks for calls to std::mem::drop with a value that does not implement Drop.\n\n Why is this bad?\nCa"],"lossy_float_literal":[C[0],"\nChecks for whole number float literals that\ncannot be represented as the underlying type without lo"],"modulo_one":["Deny","\nChecks for getting the remainder of a division by one or minus\none.\n\n Why is this bad?\nThe result f"],"multiple_crate_versions":[C[0],"\nChecks to see if multiple versions of a crate are being\nused.\n\n Why is this bad?\nThis bloats the si"],"trim_split_whitespace":["Warn","\nWarns about calling str::trim (or variants) before str::split_whitespace.\n\n Why is this bad?\nsplit_"],"replace_consts":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nAssociated-constants are now preferred"],"needless_range_loop":["Warn","\nChecks for looping over the range of 0..len of some\ncollection just to get the values by index.\n\n W"],"unnecessary_find_map":["Warn","\nChecks for find_map calls that could be replaced by find or map. More\nspecifically it checks if the"],"unnecessary_wraps":[C[0],"\nChecks for private functions that only return Ok or Some.\n\n Why is this bad?\nIt is not meaningful t"],"as_conversions":[C[0],"\nChecks for usage of as conversions.\n\nNote that this lint is specialized in linting *every single* u"],"err_expect":["Warn","\nChecks for .err().expect() calls on the Result type.\n\n Why is this bad?\n.expect_err() can be called"],"needless_question_mark":["Warn","\nSuggests alternatives for useless applications of ? in terminating expressions\n\n Why is this bad?\nT"],"manual_let_else":[C[0],"\n\nWarn of cases where let...else could be used\n\n Why is this bad?\n\nlet...else provides a standard co"],"unneeded_field_pattern":[C[0],"\nChecks for structure field patterns bound to wildcards.\n\n Why is this bad?\nUsing .. instead is shor"],"double_comparisons":["Warn","\nChecks for double comparisons that could be simplified to a single expression.\n\n\n Why is this bad?\n"],"unnecessary_sort_by":["Warn","\nChecks for usage of Vec::sort_by passing in a closure\nwhich compares the two arguments, either dire"],"recursive_format_impl":["Deny","\nChecks for format trait implementations (e.g. Display) with a recursive call to itself\nwhich uses s"],"unnecessary_unwrap":["Warn","\nChecks for calls of unwrap[_err]() that cannot fail.\n\n Why is this bad?\nUsing if let or match is mo"],"implicit_saturating_add":["Warn","\nChecks for implicit saturating addition.\n\n Why is this bad?\nThe built-in function is more readable "],"copy_iterator":[C[0],"\nChecks for types that implement Copy as well as\nIterator.\n\n Why is this bad?\nImplicit copies can be"],"bool_to_int_with_if":[C[0],"\nInstead of using an if statement to convert a bool to an int,\nthis lint suggests using a from() fun"],"partialeq_to_none":["Warn","\n\nChecks for binary comparisons to a literal Option::None.\n\n Why is this bad?\n\nA programmer checking"],"cast_possible_wrap":[C[0],"\nChecks for casts from an unsigned type to a signed type of\nthe same size, or possibly smaller due t"],"inconsistent_struct_constructor":[C[0],"\nChecks for struct constructors where all fields are shorthand and\nthe order of the field init short"],"mut_mutex_lock":["Warn","\nChecks for &mut Mutex::lock calls\n\n Why is this bad?\nMutex::lock is less efficient than\ncalling Mut"],"separated_literal_suffix":[C[0],"\nWarns if literal suffixes are separated by an underscore.\nTo enforce separated literal suffix style"],"short_circuit_statement":["Warn","\nChecks for the use of short circuit boolean conditions as\na\nstatement.\n\n Why is this bad?\nUsing a s"],"borrowed_box":["Warn","\nChecks for usage of &Box<T> anywhere in the code.\nCheck the [Box documentation](https://doc.rust-la"],"duplicate_mod":["Warn","\nChecks for files that are included as modules multiple times.\n\n Why is this bad?\nLoading a file as "],"empty_line_after_doc_comments":[C[0],"\nChecks for empty lines after documenation comments.\n\n Why is this bad?\nThe documentation comment wa"],"no_mangle_with_rust_abi":[C[0],"\nChecks for Rust ABI functions with the [no_mangle] attribute.\n\n Why is this bad?\nThe Rust ABI is no"],"serde_api_misuse":["Deny","\nChecks for mis-uses of the serde API.\n\n Why is this bad?\nSerde is very finnicky about how its API s"],"empty_drop":[C[0],"\nChecks for empty Drop implementations.\n\n Why is this bad?\nEmpty Drop implementations have no effect"],"ptr_arg":["Warn","\nThis lint checks for function arguments of type &String, &Vec,\n&PathBuf, and Cow<_>. It will also s"],"map_clone":["Warn","\nChecks for usage of map(|x| x.clone()) or\ndereferencing closures for Copy types, on Iterator or Opt"],"tabs_in_doc_comments":["Warn","\nChecks doc comments for usage of tab characters.\n\n Why is this bad?\nThe rust style-guide promotes s"],"transmute_ptr_to_ptr":[C[0],"\nChecks for transmutes from a pointer to a pointer, or\nfrom a reference to a reference.\n\n Why is thi"],"bind_instead_of_map":["Warn","\nChecks for usage of _.and_then(|x| Some(y)), _.and_then(|x| Ok(y)) or\n_.or_else(|x| Err(y)).\n\n Why "],"mut_mut":[C[0],"\nChecks for instances of mut mut references.\n\n Why is this bad?\nMultiple muts don't add anything mea"],"mismatching_type_param_order":[C[0],"\nChecks for type parameters which are positioned inconsistently between\na type definition and impl b"],"same_name_method":[C[0],"\nIt lints if a struct has two methods with the same name:\none from a trait, another not from trait.\n"],"too_many_lines":[C[0],"\nChecks for functions with a large amount of lines.\n\n Why is this bad?\nFunctions with a lot of lines"],"redundant_allocation":["Warn","\nChecks for usage of redundant allocations anywhere in the code.\n\n Why is this bad?\nExpressions such"],"crate_in_macro_def":["Warn","\nChecks for usage of crate as opposed to $crate in a macro definition.\n\n Why is this bad?\ncrate refe"],"option_filter_map":["Warn","\nChecks for indirect collection of populated Option\n\n Why is this bad?\nOption is like a collection o"],"transmute_undefined_repr":[C[0],"\nChecks for transmutes between types which do not have a representation defined relative to\neach oth"],"unwrap_used":[C[0],"\nChecks for .unwrap() or .unwrap_err() calls on Results and .unwrap() call on Options.\n\n Why is this"],"field_reassign_with_default":["Warn","\nChecks for immediate reassignment of fields initialized\nwith Default::default().\n\n Why is this bad?"],"manual_try_fold":["Warn","\nChecks for usage of Iterator::fold with a type that implements Try.\n\n Why is this bad?\nThe code sho"],"iter_kv_map":["Warn","\n\nChecks for iterating a map (HashMap or BTreeMap) and\nignoring either the keys or values.\n\n Why is "],"type_id_on_box":["Warn","\nLooks for calls to <Box<dyn Any> as Any>::type_id.\n\n Why is this bad?\nThis most certainly does not "],"unit_arg":["Warn","\nChecks for passing a unit value as an argument to a function without using a\nunit literal (()).\n\n W"],"manual_clamp":[C[0],"\nIdentifies good opportunities for a clamp function from std or core, and suggests using it.\n\n Why i"],"from_raw_with_void_ptr":["Warn","\nChecks if we're passing a c_void raw pointer to {Box,Rc,Arc,Weak}::from_raw(_)\n\n Why is this bad?\nW"],"borrow_as_ptr":[C[0],"\nChecks for the usage of &expr as *const T or\n&mut expr as *mut T, and suggest using ptr::addr_of or"],"collapsible_match":["Warn","\nFinds nested match or if let expressions where the patterns may be \"collapsed\" together\nwithout add"],"decimal_literal_representation":[C[0],"\nWarns if there is a better representation for a numeric literal.\n\n Why is this bad?\nEspecially for "],"nonminimal_bool":["Warn","\nChecks for boolean expressions that can be written more\nconcisely.\n\n Why is this bad?\nReadability o"],"branches_sharing_code":[C[0],"\nChecks if the if and else block contain shared code that can be\nmoved out of the blocks.\n\n Why is t"],"similar_names":[C[0],"\nChecks for names that are very similar and thus confusing.\n\nNote: this lint looks for similar names"],"transmutes_expressible_as_ptr_casts":["Warn","\nChecks for transmutes that could be a pointer cast.\n\n Why is this bad?\nReadability. The code tricks"],"unused_io_amount":["Deny","\nChecks for unused written/read amount.\n\n Why is this bad?\nio::Write::write(_vectored) and\nio::Read:"],"create_dir":[C[0],"\nChecks usage of std::fs::create_dir and suggest using std::fs::create_dir_all instead.\n\n Why is thi"],"should_implement_trait":["Warn","\nChecks for methods that should live in a trait\nimplementation of a std trait (see [llogiq's blog\npo"],"borrow_interior_mutable_const":["Warn","\nChecks if const items which is interior mutable (e.g.,\ncontains a Cell, Mutex, AtomicXxxx, etc.) ha"],"extra_unused_type_parameters":["Warn","\nChecks for type parameters in generics that are never used anywhere else.\n\n Why is this bad?\nFuncti"],"needless_else":["Warn","\nChecks for empty else branches.\n\n Why is this bad?\nAn empty else branch does nothing and can be rem"],"string_add_assign":[C[0],"\nChecks for string appends of the form x = x + y (without\nlet!).\n\n Why is this bad?\nIt's not really "],"suspicious_xor_used_as_pow":[C[0],"\nWarns for a Bitwise XOR (^) operator being probably confused as a powering. It will not trigger if "],"range_minus_one":[C[0],"\nChecks for inclusive ranges where 1 is subtracted from\nthe upper bound, e.g., x..=(y-1).\n\n Why is t"],"read_zero_byte_vec":["Deny","\nThis lint catches reads into a zero-length Vec.\nEspecially in the case of a call to with_capacity, "],"init_numbered_fields":["Warn","\nChecks for tuple structs initialized with field syntax.\nIt will however not lint if a base initiali"],"non_ascii_literal":[C[0],"\nChecks for non-ASCII characters in string and char literals.\n\n Why is this bad?\nYeah, we know, the "],"suspicious_operation_groupings":[C[0],"\nChecks for unlikely usages of binary operators that are almost\ncertainly typos and/or copy/paste er"],"match_overlapping_arm":["Warn","\nChecks for overlapping match arms.\n\n Why is this bad?\nIt is likely to be an error and if not, makes"],"cmp_owned":["Warn","\nChecks for conversions to owned values just for the sake\nof a comparison.\n\n Why is this bad?\nThe co"],"unneeded_wildcard_pattern":["Warn","\nChecks for tuple patterns with a wildcard\npattern (_) is next to a rest pattern (..).\n\n_NOTE_: Whil"],"missing_enforced_import_renames":[C[0],"\nChecks for imports that do not rename the item as specified\nin the enforce-import-renames config op"],"transmute_null_to_fn":["Deny","\nChecks for null function pointer creation through transmute.\n\n Why is this bad?\nCreating a null fun"],"use_self":[C[0],"\nChecks for unnecessary repetition of structure name when a\nreplacement with Self is applicable.\n\n W"],"ifs_same_cond":["Deny","\nChecks for consecutive ifs with the same condition.\n\n Why is this bad?\nThis is probably a copy & pa"],"multiple_unsafe_ops_per_block":[C[0],"\nChecks for unsafe blocks that contain more than one unsafe operation.\n\n Why is this bad?\nCombined w"],"default_trait_access":[C[0],"\nChecks for literal calls to Default::default().\n\n Why is this bad?\nIt's easier for the reader if th"],"expect_used":[C[0],"\nChecks for .expect() or .expect_err() calls on Results and .expect() call on Options.\n\n Why is this"],"future_not_send":[C[0],"\nThis lint requires Future implementations returned from\nfunctions and methods to implement the Send"],"integer_division":[C[0],"\nChecks for division of integers\n\n Why is this bad?\nWhen outside of some very specific algorithms,\ni"],"trait_duplication_in_bounds":[C[0],"\nChecks for cases where generics or trait objects are being used and multiple\nsyntax specifications "],"empty_loop":["Warn","\nChecks for empty loop expressions.\n\n Why is this bad?\nThese busy loops burn CPU cycles without doin"],"suspicious_assignment_formatting":["Warn","\nChecks for usage of the non-existent =*, =! and =-\noperators.\n\n Why is this bad?\nThis is either a t"],"redundant_closure_call":["Warn","\nDetects closures called in the same expression where they\nare defined.\n\n Why is this bad?\nIt is unn"],"suspicious_splitn":["Deny","\nChecks for calls to [splitn]\n(https://doc.rust-lang.org/std/primitive.str.htmlmethod.splitn) and\nre"],"manual_flatten":["Warn","\nChecks for unnecessary if let usage in a for loop\nwhere only the Some or Ok variant of the iterator"],"needless_collect":[C[0],"\nChecks for functions collecting an iterator when collect\nis not needed.\n\n Why is this bad?\ncollect "],"needless_option_as_deref":["Warn","\nChecks for no-op uses of Option::{as_deref, as_deref_mut},\nfor example, Option<&T>::as_deref() retu"],"unnecessary_safety_comment":[C[0],"\nChecks for // SAFETY: comments on safe code.\n\n Why is this bad?\nSafe code has no safety requiremen"],"needless_raw_string_hashes":["Warn","\nChecks for raw string literals with an unnecessary amount of hashes around them.\n\n Why is this bad?"],"only_used_in_recursion":["Warn","\nChecks for arguments that are only used in recursion with no side-effects.\n\n Why is this bad?\nIt co"],"suspicious_op_assign_impl":["Warn","\nLints for suspicious operations in impls of OpAssign, e.g.\nsubtracting elements in an AddAssign imp"],"large_include_file":[C[0],"\nChecks for the inclusion of large files via include_bytes!()\nand include_str!()\n\n Why is this bad?\n"],"manual_instant_elapsed":[C[0],"\nLints subtraction between Instant::now() and another Instant.\n\n Why is this bad?\nIt is easy to acci"],"string_to_string":[C[0],"\nThis lint checks for .to_string() method calls on values of type String.\n\n Why is this bad?\nThe to_"],"if_let_mutex":["Deny","\nChecks for Mutex::lock calls in if let expression\nwith lock calls in any of the else blocks.\n\n Why "],"todo":[C[0],"\nChecks for usage of todo!.\n\n Why is this bad?\nThis macro should not be present in production code\n\n"],"manual_async_fn":["Warn","\nIt checks for manual implementations of async functions.\n\n Why is this bad?\nIt's more idiomatic to "],"return_self_not_must_use":[C[0],"\nThis lint warns when a method returning Self doesn't have the [must_use] attribute.\n\n Why is this b"],"to_digit_is_some":["Warn","\nChecks for .to_digit(..).is_some() on chars.\n\n Why is this bad?\nThis is a convoluted way of checkin"],"unsafe_vector_initialization":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint used to suggest replacing le"],"single_range_in_vec_init":["Warn","\nChecks for Vec or array initializations that contain only one range.\n\n Why is this bad?\nThis is alm"],"mistyped_literal_suffixes":["Deny","\nWarns for mistyped suffix in literals\n\n Why is this bad?\nThis is most probably a typo\n\n Known probl"],"single_match_else":[C[0],"\nChecks for matches with two arms where an if let else will\nusually suffice.\n\n Why is this bad?\nJust"],"inline_always":[C[0],"\nChecks for items annotated with [inline(always)],\nunless the annotated function is empty or simply "],"enum_clike_unportable_variant":["Deny","\nChecks for C-like enumerations that are\nrepr(isize/usize) and have values that don't fit into an i3"],"unnecessary_filter_map":["Warn","\nChecks for filter_map calls that could be replaced by filter or map.\nMore specifically it checks if"],"neg_multiply":["Warn","\nChecks for multiplication by -1 as a form of negation.\n\n Why is this bad?\nIt's more readable to jus"],"manual_rem_euclid":["Warn","\nChecks for an expression like ((x % 4) + 4) % 4 which is a common manual reimplementation\nof x.rem_"],"mem_replace_with_uninit":["Deny","\nChecks for mem::replace(&mut _, mem::uninitialized())\nand mem::replace(&mut _, mem::zeroed()).\n\n Wh"],"manual_find":["Warn","\nChecks for manual implementations of Iterator::find\n\n Why is this bad?\nIt doesn't affect performanc"],"try_err":[C[0],"\nChecks for usage of Err(x)?.\n\n Why is this bad?\nThe ? operator is designed to allow calls that\ncan "],"significant_drop_in_scrutinee":[C[0],"\nChecks for temporaries returned from function calls in a match scrutinee that have the\nclippy::has_"],"std_instead_of_alloc":[C[0],"\n\nFinds items imported through std when available through alloc.\n\n Why is this bad?\n\nCrates which ha"],"suspicious_arithmetic_impl":["Warn","\nLints for suspicious operations in impls of arithmetic operators, e.g.\nsubtracting elements in an A"],"result_map_unit_fn":["Warn","\nChecks for usage of result.map(f) where f is a function\nor closure that returns the unit type ().\n\n"],"transmuting_null":["Deny","\nChecks for transmute calls which would receive a null pointer.\n\n Why is this bad?\nTransmuting a nul"],"single_char_lifetime_names":[C[0],"\nChecks for lifetimes with names which are one character\nlong.\n\n Why is this bad?\nA single character"],"indexing_slicing":[C[0],"\nChecks for usage of indexing or slicing. Arrays are special cases, this lint\ndoes report on arrays "],"semicolon_if_nothing_returned":[C[0],"\nLooks for blocks of expressions and fires if the last expression returns\n() but is not followed by "],"arithmetic_side_effects":[C[0],"\nChecks any kind of arithmetic operation of any type.\n\nOperators like +, -, * or << are usually capa"],"flat_map_identity":["Warn","\nChecks for usage of flat_map(|x| x).\n\n Why is this bad?\nReadability, this can be written more conci"],"option_map_or_none":["Warn","\nChecks for usage of _.map_or(None, _).\n\n Why is this bad?\nReadability, this can be written more con"],"single_match":["Warn","\nChecks for matches with a single arm where an if let\nwill usually suffice.\n\nThis intentionally does"],"inconsistent_digit_grouping":["Warn","\nWarns if an integral or floating-point constant is\ngrouped inconsistently with underscores.\n\n Why i"],"fallible_impl_from":[C[0],"\nChecks for impls of From<..> that contain panic!() or unwrap()\n\n Why is this bad?\nTryFrom should be"],"string_from_utf8_as_bytes":["Warn","\nCheck if the string is transformed to byte array and casted back to string.\n\n Why is this bad?\nIt's"],"manual_is_infinite":["Warn","\nChecks for manual is_infinite reimplementations\n(i.e., x == <float>::INFINITY || x == <float>::NEG_"],"option_if_let_else":[C[0],"\nLints usage of if let Some(v) = ... { y } else { x } and\nmatch .. { Some(v) => y, None/_ => x } whi"],"write_literal":["Warn","\nThis lint warns about the use of literals as write!/writeln! args.\n\n Why is this bad?\nUsing literal"],"arc_with_non_send_sync":["Warn",".\nThis lint warns when you use Arc with a type that does not implement Send or Sync.\n\n Why is this b"],"needless_match":["Warn","\nChecks for unnecessary match or match-like if let returns for Option and Result\nwhen function signa"],"transmute_bytes_to_str":["Warn","\nChecks for transmutes from a &[u8] to a &str.\n\n Why is this bad?\nNot every byte slice is a valid UT"],"strlen_on_c_strings":["Warn","\nChecks for usage of libc::strlen on a CString or CStr value,\nand suggest calling as_bytes().len() o"],"single_element_loop":["Warn","\nChecks whether a for loop has a single element.\n\n Why is this bad?\nThere is no reason to have a loo"],"index_refutable_slice":[C[0],"\nThe lint checks for slice bindings in patterns that are only used to\naccess individual slice values"],"exhaustive_structs":[C[0],"\nWarns on any exported structss that are not tagged [non_exhaustive]\n\n Why is this bad?\nExhaustive s"],"if_then_some_else_none":[C[0],"\nChecks for if-else that could be written using either bool::then or bool::then_some.\n\n Why is this "],"regex_macro":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThe regex! macro does not exist anymor"],"bytes_count_to_len":["Warn","\nIt checks for str::bytes().count() and suggests replacing it with\nstr::len().\n\n Why is this bad?\nst"],"iterator_step_by_zero":["Deny","\nChecks for calling .step_by(0) on iterators which panics.\n\n Why is this bad?\nThis very much looks l"],"for_kv_map":["Warn","\nChecks for iterating a map (HashMap or BTreeMap) and\nignoring either the keys or values.\n\n Why is t"],"redundant_static_lifetimes":["Warn","\nChecks for constants and statics with an explicit 'static lifetime.\n\n Why is this bad?\nAdding 'stat"],"same_item_push":["Warn","\nChecks whether a for loop is being used to push a constant\nvalue into a Vec.\n\n Why is this bad?\nThi"],"vec_init_then_push":["Warn","\nChecks for calls to push immediately after creating a new Vec.\n\nIf the Vec is created using with_ca"],"unnecessary_mut_passed":["Warn","\nDetects passing a mutable reference to a function that only\nrequires an immutable reference.\n\n Why "],"stable_sort_primitive":[C[0],"\nWhen sorting primitive values (integers, bools, chars, as well\nas arrays, slices, and tuples of suc"],"large_stack_frames":[C[0],"\nChecks for functions that use a lot of stack space.\n\nThis often happens when constructing a large t"],"overflow_check_conditional":["Warn","\nDetects classic underflow/overflow checks.\n\n Why is this bad?\nMost classic C underflow/overflow che"],"manual_range_patterns":["Warn","\nLooks for combined OR patterns that are all contained in a specific range,\ne.g. 6 | 4 | 5 | 9 | 7 |"],"verbose_file_reads":[C[0],"\nChecks for usage of File::read_to_end and File::read_to_string.\n\n Why is this bad?\nfs::{read, read_"],"unimplemented":[C[0],"\nChecks for usage of unimplemented!.\n\n Why is this bad?\nThis macro should not be present in producti"],"inline_asm_x86_att_syntax":[C[0],"\nChecks for usage of AT&T x86 assembly syntax.\n\n Why is this bad?\nThe lint has been enabled to indic"],"unnecessary_struct_initialization":[C[0],"\nChecks for initialization of a struct by copying a base without setting\nany field.\n\n Why is this ba"],"while_immutable_condition":["Deny","\nChecks whether variables used within while loop condition\ncan be (and are) mutated in the body.\n\n W"],"self_named_constructors":["Warn","\nWarns when constructors have the same name as their types.\n\n Why is this bad?\nRepeating the name of"],"items_after_statements":[C[0],"\nChecks for items declared after some statement in a block.\n\n Why is this bad?\nItems live for the en"],"needless_for_each":[C[0],"\nChecks for usage of for_each that would be more simply written as a\nfor loop.\n\n Why is this bad?\nfo"],"needless_if":["Warn","\nChecks for empty if branches with no else branch.\n\n Why is this bad?\nIt can be entirely omitted, an"],"manual_is_ascii_check":["Warn","\nSuggests to use dedicated built-in methods,\nis_ascii_(lowercase|uppercase|digit) for checking on co"],"needless_option_take":["Warn","\nChecks for calling take function after as_ref.\n\n Why is this bad?\nRedundant code. take writes None "],"infallible_destructuring_match":["Warn","\nChecks for matches being used to destructure a single-variant enum\nor tuple struct where a let will"],"option_map_unit_fn":["Warn","\nChecks for usage of option.map(f) where f is a function\nor closure that returns the unit type ().\n\n"],"comparison_chain":["Warn","\nChecks comparison chains written with if that can be\nrewritten with match and cmp.\n\n Why is this ba"],"missing_assert_message":[C[0],"\nChecks assertions without a custom panic message.\n\n Why is this bad?\nWithout a good custom message,"],"ref_option_ref":[C[0],"\nChecks for usage of &Option<&T>.\n\n Why is this bad?\nSince & is Copy, it's useless to have a\nreferen"],"if_same_then_else":["Deny","\nChecks for if/else with the same body as the *then* part\nand the *else* part.\n\n Why is this bad?\nTh"],"format_push_string":[C[0],"\nDetects cases where the result of a format! call is\nappended to an existing String.\n\n Why is this b"],"bad_bit_mask":["Deny","\nChecks for incompatible bit masks in comparisons.\n\nThe formula for detecting if an expression of th"],"match_str_case_mismatch":["Deny","\nChecks for match expressions modifying the case of a string with non-compliant arms\n\n Why is this b"],"equatable_if_let":[C[0],"\nChecks for pattern matchings that can be expressed using equality.\n\n Why is this bad?\n\n* It reads b"],"inline_asm_x86_intel_syntax":[C[0],"\nChecks for usage of Intel x86 assembly syntax.\n\n Why is this bad?\nThe lint has been enabled to indi"],"rc_clone_in_vec_init":["Warn","\nChecks for reference-counted pointers (Arc, Rc, rc::Weak, and sync::Weak)\nin vec![elem; len]\n\n Why "],"needless_bool":["Warn","\nChecks for expressions of the form if c { true } else {\nfalse } (or vice versa) and suggests using "],"large_const_arrays":["Warn","\nChecks for large const arrays that should\nbe defined as static instead.\n\n Why is this bad?\nPerforma"],"unnecessary_owned_empty_strings":["Warn","\n\nDetects cases of owned empty strings being passed as an argument to a function expecting &str\n\n Wh"],"cast_precision_loss":[C[0],"\nChecks for casts from any numerical to a float type where\nthe receiving type cannot store all value"],"search_is_some":["Warn","\nChecks for an iterator or string search (such as find(),\nposition(), or rposition()) followed by a "],"misrefactored_assign_op":["Warn","\nChecks for a op= a op b or a op= b op a patterns.\n\n Why is this bad?\nMost likely these are bugs whe"],"needless_lifetimes":["Warn","\nChecks for lifetime annotations which can be removed by\nrelying on lifetime elision.\n\n Why is this "],"filter_map_next":[C[0],"\nChecks for usage of _.filter_map(_).next().\n\n Why is this bad?\nReadability, this can be written mor"],"deprecated_cfg_attr":["Warn","\nChecks for [cfg_attr(rustfmt, rustfmt_skip)] and suggests to replace it\nwith [rustfmt::skip].\n\n Why"],"needless_borrow":["Warn","\nChecks for address of operations (&) that are going to\nbe dereferenced immediately by the compiler."],"non_minimal_cfg":["Warn","\nChecks for any and all combinators in cfg with only one condition.\n\n Why is this bad?\nIf there is o"],"repeat_once":["Warn","\nChecks for usage of .repeat(1) and suggest the following method for each types.\n- .to_string() for "],"transmute_float_to_int":["Warn","\nChecks for transmutes from a float to an integer.\n\n Why is this bad?\nTransmutes are dangerous and e"],"match_like_matches_macro":["Warn","\nChecks for match or if let expressions producing a\nbool that could be written using matches!\n\n Why"],"cloned_instead_of_copied":[C[0],"\nChecks for usage of cloned() on an Iterator or Option where\ncopied() could be used instead.\n\n Why i"],"cmp_null":["Warn","\nThis lint checks for equality comparisons with ptr::null\n\n Why is this bad?\nIt's easier and more re"],"manual_next_back":["Warn","\nChecks for .rev().next() on a DoubleEndedIterator\n\n Why is this bad?\n.next_back() is cleaner.\n\n Exa"],"match_result_ok":["Warn","\nChecks for unnecessary ok() in while let.\n\n Why is this bad?\nCalling ok() in while let is unnecessa"],"multi_assignments":["Warn","\nChecks for nested assignments.\n\n Why is this bad?\nWhile this is in most cases already a type mismat"],"manual_filter_map":["Warn","\nChecks for usage of _.filter(_).map(_) that can be written more simply\nas filter_map(_).\n\n Why is t"],"transmute_int_to_non_zero":["Warn","\nChecks for transmutes from integers to NonZero* types, and suggests their new_unchecked\nmethod inst"],"fn_null_check":["Deny","\nChecks for comparing a function pointer to null.\n\n Why is this bad?\nFunction pointers are assumed t"],"unused_rounding":[C[0],"\n\nDetects cases where a whole-number literal float is being rounded, using\nthe floor, ceil, or round"],"diverging_sub_expression":["Warn","\nChecks for diverging calls that are not match arms or\nstatements.\n\n Why is this bad?\nIt is often co"],"extra_unused_lifetimes":["Warn","\nChecks for lifetimes in generics that are never used\nanywhere else.\n\n Why is this bad?\nThe addition"],"mem_replace_option_with_none":["Warn","\nChecks for mem::replace() on an Option with\nNone.\n\n Why is this bad?\nOption already has the method "],"wrong_pub_self_convention":["None",C[1]],"expl_impl_clone_on_copy":[C[0],"\nChecks for explicit Clone implementations for Copy\ntypes.\n\n Why is this bad?\nTo avoid surprising be"],"ptr_as_ptr":[C[0],"\nChecks for as casts between raw pointers without changing its mutability,\nnamely *const T to *const"],"redundant_pub_crate":[C[0],"\nChecks for items declared pub(crate) that are not crate visible because they\nare inside a private m"],"inspect_for_each":["Warn","\nChecks for usage of inspect().for_each().\n\n Why is this bad?\nIt is the same as performing the compu"],"while_let_on_iterator":["Warn","\nChecks for while let expressions on iterators.\n\n Why is this bad?\nReadability. A simple for loop is"],"single_char_add_str":["Warn","\nWarns when using push_str/insert_str with a single-character string literal\nwhere push/insert with "],"host_endian_bytes":[C[0],"\nChecks for the usage of the to_ne_bytes method and/or the function from_ne_bytes.\n\n Why is this bad"],"needless_bitwise_bool":[C[0],"\nChecks for usage of bitwise and/or operators between booleans, where performance may be improved by"],"possible_missing_comma":["Deny","\nChecks for possible missing comma in an array. It lints if\nan array element is a binary operator ex"],"missing_inline_in_public_items":[C[0],"\nIt lints if an exported function, method, trait method with default impl,\nor trait method impl is n"],"if_let_redundant_pattern_matching":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThe original rule will only lint for i"],"disallowed_types":["Warn","\nDenies the configured types in clippy.toml.\n\nNote: Even though this lint is warn-by-default, it wil"],"new_ret_no_self":["Warn","\nChecks for new not returning a type that contains Self.\n\n Why is this bad?\nAs a convention, new met"],"mixed_read_write_in_expression":[C[0],"\nChecks for a read and a write to the same variable where\nwhether the read occurs before or after th"],"obfuscated_if_else":["Warn","\nChecks for usage of .then_some(..).unwrap_or(..)\n\n Why is this bad?\nThis can be written more clearl"],"redundant_else":[C[0],"\nChecks for else blocks that can be removed without changing semantics.\n\n Why is this bad?\nThe else "],"iter_nth_zero":["Warn","\nChecks for the use of iter.nth(0).\n\n Why is this bad?\niter.next() is equivalent to\niter.nth(0), as "],"erasing_op":["Deny","\nChecks for erasing operations, e.g., x * 0.\n\n Why is this bad?\nThe whole expression can be replaced"],"vec_box":["Warn","\nChecks for usage of Vec<Box<T>> where T: Sized anywhere in the code.\nCheck the [Box documentation]("],"missing_trait_methods":[C[0],"\nChecks if a provided method is used implicitly by a trait\nimplementation. A usage example would be "],"significant_drop_tightening":[C[0],"\n\nSearches for elements marked with [clippy::has_significant_drop] that could be early\ndropped but a"],"boxed_local":["Warn","\nChecks for usage of Box<T> where an unboxed T would\nwork fine.\n\n Why is this bad?\nThis is an unnece"],"match_wild_err_arm":[C[0],"\nChecks for arm which matches all errors with Err(_)\nand take drastic actions like panic!.\n\n Why is "],"redundant_async_block":["Warn","\nChecks for async block that only returns await on a future.\n\n Why is this bad?\nIt is simpler and mo"],"suspicious_doc_comments":["Warn","\nDetects the use of outer doc comments (///, /**) followed by a bang (!): ///!\n\n Why is this bad?\nTr"],"suspicious_to_owned":["Warn","\nChecks for the usage of _.to_owned(), on a Cow<'_, _>.\n\n Why is this bad?\nCalling to_owned() on a C"],"into_iter_on_ref":["Warn","\nChecks for into_iter calls on references which should be replaced by iter\nor iter_mut.\n\n Why is thi"],"transmute_num_to_bytes":["Warn","\nChecks for transmutes from a number to an array of u8\n\n Why this is bad?\nTransmutes are dangerous a"],"absurd_extreme_comparisons":["Deny","\nChecks for comparisons where one side of the relation is\neither the minimum or maximum value for it"],"unit_hash":["Deny","\nDetects ().hash(_).\n\n Why is this bad?\nHashing a unit value doesn't do anything as the implementati"],"case_sensitive_file_extension_comparisons":[C[0],"\nChecks for calls to ends_with with possible file extensions\nand suggests to use a case-insensitive "],"deprecated_semver":["Deny","\nChecks for [deprecated] annotations with a since\nfield that is not a valid semantic version.\n\n Why "],"let_underscore_must_use":[C[0],"\nChecks for let _ = <expr> where expr is [must_use]\n\n Why is this bad?\nIt's better to explicitly han"],"missing_const_for_fn":[C[0],"\nSuggests the use of const in functions and methods where possible.\n\n Why is this bad?\nNot having th"],"unnecessary_to_owned":["Warn","\nChecks for unnecessary calls to [ToOwned::to_owned](https://doc.rust-lang.org/std/borrow/trait.ToOw"],"used_underscore_binding":[C[0],"\nChecks for the use of bindings with a single leading\nunderscore.\n\n Why is this bad?\nA single leadin"],"iter_nth":["Warn","\nChecks for usage of .iter().nth() (and the related\n.iter_mut().nth()) on standard library types wit"],"iter_cloned_collect":["Warn","\nChecks for the use of .cloned().collect() on slice to\ncreate a Vec.\n\n Why is this bad?\n.to_vec() is"],"fn_params_excessive_bools":[C[0],"\nChecks for excessive use of\nbools in function definitions.\n\n Why is this bad?\nCalls to such functio"],"collapsible_else_if":["Warn","\nChecks for collapsible else { if ... } expressions\nthat can be collapsed to else if ....\n\n Why is t"],"panic_in_result_fn":[C[0],"\nChecks for usage of panic! or assertions in a function of type result.\n\n Why is this bad?\nFor some "],"match_wildcard_for_single_variants":[C[0],"\nChecks for wildcard enum matches for a single variant.\n\n Why is this bad?\nNew enum variants added b"],"ok_expect":["Warn","\nChecks for usage of ok().expect(..).\n\n Why is this bad?\nBecause you usually call expect() on the Re"],"blocks_in_if_conditions":["Warn","\nChecks for if conditions that use blocks containing an\nexpression, statements or conditions that us"],"unnecessary_box_returns":[C[0],"\n\nChecks for a return type containing a Box<T> where T implements Sized\n\nThe lint ignores Box<T> whe"],"builtin_type_shadow":["Warn","\nWarns if a generic shadows a built-in type.\n\n Why is this bad?\nThis gives surprising type errors.\n\n"],"get_unwrap":[C[0],"\nChecks for usage of .get().unwrap() (or\n.get_mut().unwrap) on a standard library type which impleme"],"cargo_common_metadata":[C[0],"\nChecks to see if all common metadata is defined in\nCargo.toml. See: https://rust-lang-nursery.githu"],"upper_case_acronyms":["Warn","\nChecks for fully capitalized names and optionally names containing a capitalized acronym.\n\n Why is "],"derive_ord_xor_partial_ord":["Deny","\nLints against manual PartialOrd and Ord implementations for types with a derived Ord\nor PartialOrd "],"suspicious_map":["Warn","\nChecks for calls to map followed by a count.\n\n Why is this bad?\nIt looks suspicious. Maybe map was "],"cognitive_complexity":[C[0],"\nChecks for methods with high cognitive complexity.\n\n Why is this bad?\nMethods of high cognitive com"],"unnecessary_operation":["Warn","\nChecks for expression statements that can be reduced to a\nsub-expression.\n\n Why is this bad?\nExpres"],"pub_enum_variant_names":["None",C[1]],"ref_binding_to_reference":[C[0],"\nChecks for ref bindings which create a reference to a reference.\n\n Why is this bad?\nThe address-of "],"explicit_iter_loop":[C[0],"\nChecks for loops on x.iter() where &x will do, and\nsuggests the latter.\n\n Why is this bad?\nReadabil"],"size_of_ref":["Warn","\n\nChecks for calls to std::mem::size_of_val() where the argument is\na reference to a reference.\n\n Wh"],"manual_assert":[C[0],"\nDetects if-then-panic! that can be replaced with assert!.\n\n Why is this bad?\nassert! is simpler tha"],"transmute_int_to_float":["Warn","\nChecks for transmutes from an integer to a float.\n\n Why is this bad?\nTransmutes are dangerous and e"],"cast_slice_different_sizes":["Deny","\nChecks for as casts between raw pointers to slices with differently sized elements.\n\n Why is this b"],"maybe_infinite_iter":[C[0],"\nChecks for iteration that may be infinite.\n\n Why is this bad?\nWhile there may be places where this "],"needless_update":["Warn","\nChecks for needlessly including a base struct on update\nwhen all fields are changed anyway.\n\nThis l"],"assign_ops":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint is too subjective, not havin"],"cast_abs_to_unsigned":["Warn","\nChecks for usage of the abs() method that cast the result to unsigned.\n\n Why is this bad?\nThe unsig"],"cast_ptr_alignment":[C[0],"\nChecks for casts, using as or pointer::cast,\nfrom a less-strictly-aligned pointer to a more-strictl"],"manual_retain":["Warn","\nChecks for code to be replaced by .retain().\n Why is this bad?\n.retain() is simpler and avoids need"],"redundant_clone":[C[0],"\nChecks for a redundant clone() (and its relatives) which clones an owned\nvalue that is going to be "],"no_effect_replace":["Warn","\nChecks for replace statements which have no effect.\n\n Why is this bad?\nIt's either a mistake or con"],"manual_filter":["Warn","\nChecks for usage of match which could be implemented using filter\n\n Why is this bad?\nUsing the filt"],"non_send_fields_in_send_ty":[C[0],"\nThis lint warns about a Send implementation for a type that\ncontains fields that are not safe to be"],"range_step_by_zero":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nRange::step_by(0) used to be linted si"],"chars_last_cmp":["Warn","\nChecks for usage of _.chars().last() or\n_.chars().next_back() on a str to check if it ends with a g"],"no_effect_underscore_binding":[C[0],"\nChecks for binding to underscore prefixed variable without side-effects.\n\n Why is this bad?\nUnlike "],"wildcard_imports":[C[0],"\nChecks for wildcard imports use _::*.\n\n Why is this bad?\nwildcard imports can pollute the namespace"],"filter_map":["None",C[2]],"path_buf_push_overwrite":[C[0],"\n* Checks for [push](https://doc.rust-lang.org/std/path/struct.PathBuf.htmlmethod.push)\ncalls on Pat"],"excessive_nesting":["Warn","\nChecks for blocks which are nested beyond a certain threshold.\n\nNote: Even though this lint is warn"],"implicit_return":[C[0],"\nChecks for missing return statements at the end of a block.\n\n Why is this bad?\nActually omitting th"],"manual_while_let_some":["Warn","\nLooks for loops that check for emptiness of a Vec in the condition and pop an element\nin the body a"],"missing_panics_doc":[C[0],"\nChecks the doc comments of publicly visible functions that\nmay panic and warns if there is no Pani"],"negative_feature_names":[C[0],"\nChecks for negative feature names with prefix no- or not-\n\n Why is this bad?\nFeatures are supposed "],"unreadable_literal":[C[0],"\nWarns if a long integral or floating-point constant does\nnot contain underscores.\n\n Why is this bad"],"implicit_hasher":[C[0],"\nChecks for public impl or fn missing generalization\nover different hashers and implicitly defaultin"],"clone_on_ref_ptr":[C[0],"\nChecks for usage of .clone() on a ref-counted pointer,\n(Rc, Arc, rc::Weak, or sync::Weak), and sugg"],"mod_module_files":[C[0],"\nChecks that module layout uses only self named module files, bans mod.rs files.\n\n Why is this bad?\n"],"manual_str_repeat":["Warn","\nChecks for manual implementations of str::repeat\n\n Why is this bad?\nThese are both harder to read, "],"std_instead_of_core":[C[0],"\n\nFinds items imported through std when available through core.\n\n Why is this bad?\n\nCrates which hav"],"skip_while_next":["Warn","\nChecks for usage of _.skip_while(condition).next().\n\n Why is this bad?\nReadability, this can be wri"],"fn_to_numeric_cast":["Warn","\nChecks for casts of function pointers to something other than usize\n\n Why is this bad?\nCasting a fu"],"not_unsafe_ptr_arg_deref":["Deny","\nChecks for public functions that dereference raw pointer\narguments but are not marked unsafe.\n\n Why"],"redundant_pattern":["Warn","\nChecks for patterns in the form name @ _.\n\n Why is this bad?\nIt's almost always more readable to ju"],"result_large_err":["Warn","\nChecks for functions that return Result with an unusually large\nErr-variant.\n\n Why is this bad?\nA R"],"seek_from_current":["Warn","\n\nChecks an argument of seek method of Seek trait\nand if it start seek from SeekFrom::Current(0), su"],"match_ref_pats":["Warn","\nChecks for matches where all arms match a reference,\nsuggesting to remove the reference and deref t"],"unnecessary_lazy_evaluations":["Warn","\nAs the counterpart to or_fun_call, this lint looks for unnecessary\nlazily evaluated closures on Opt"],"uninlined_format_args":[C[0],"\nDetect when a variable is not inlined in a format string,\nand suggests to inline it.\n\n Why is this "],"from_over_into":["Warn","\nSearches for implementations of the Into<..> trait and suggests to implement From<..> instead.\n\n Wh"],"or_then_unwrap":["Warn","\nChecks for .or(…).unwrap() calls to Options and Results.\n\n Why is this bad?\nYou should use .unwra"],"must_use_unit":["Warn","\nChecks for a [must_use] attribute on\nunit-returning functions and methods.\n\n Why is this bad?\nUnit "],"transmute_int_to_char":["Warn","\nChecks for transmutes from an integer to a char.\n\n Why is this bad?\nNot every integer is a Unicode "],"unnecessary_self_imports":[C[0],"\nChecks for imports ending in ::{self}.\n\n Why is this bad?\nIn most cases, this can be written much m"],"exit":[C[0],"\nDetects calls to the exit() function which terminates the program.\n\n Why is this bad?\nExit terminat"],"wildcard_dependencies":[C[0],"\nChecks for wildcard dependencies in the Cargo.toml.\n\n Why is this bad?\n[As the edition guide says]("],"zero_ptr":["Warn","\nCatch casts from 0 to some pointer type\n\n Why is this bad?\nThis generally means null and is better "],"manual_main_separator_str":["Warn","\nChecks for references on std::path::MAIN_SEPARATOR.to_string() used\nto build a &str.\n\n Why is this "],"needless_doctest_main":["Warn","\nChecks for fn main() { .. } in doctests\n\n Why is this bad?\nThe test can be shorter (and likely more"],"useless_format":["Warn","\nChecks for the use of format!(\"string literal with no\nargument\") and format!(\"{}\", foo) where foo i"],"explicit_auto_deref":["Warn","\nChecks for dereferencing expressions which would be covered by auto-deref.\n\n Why is this bad?\nThis "],"semicolon_outside_block":[C[0],"\n\nSuggests moving the semicolon from a block's final expression outside of the block.\n\n Why is this "],"unusual_byte_groupings":["Warn","\nWarns if hexadecimal or binary literals are not grouped\nby nibble or byte.\n\n Why is this bad?\nNegat"],"match_as_ref":["Warn","\nChecks for match which is used to add a reference to an\nOption value.\n\n Why is this bad?\nUsing as_r"],"mutex_atomic":[C[0],"\nChecks for usage of Mutex<X> where an atomic will do.\n\n Why is this bad?\nUsing a mutex just to make"],"incorrect_partial_ord_impl_on_ord_type":["Deny","\nChecks for manual implementations of both PartialOrd and Ord when only Ord is\nnecessary.\n\n Why is t"],"enum_glob_use":[C[0],"\nChecks for use Enum::*.\n\n Why is this bad?\nIt is usually better style to use the prefixed name of\na"],"suspicious_else_formatting":["Warn","\nChecks for formatting of else. It lints if the else\nis followed immediately by a newline or the els"],"map_entry":["Warn","\nChecks for usage of contains_key + insert on HashMap\nor BTreeMap.\n\n Why is this bad?\nUsing entry is"],"mut_from_ref":["Deny","\nThis lint checks for functions that take immutable references and return\nmutable ones. This will no"],"pattern_type_mismatch":[C[0],"\nChecks for patterns that aren't exact representations of the types\nthey are applied to.\n\nTo satisfy"],"int_plus_one":["Warn","\nChecks for usage of x >= y + 1 or x - 1 >= y (and <=) in a block\n\n Why is this bad?\nReadability -- "],"needless_continue":[C[0],"\nThe lint checks for if-statements appearing in loops\nthat contain a continue statement in either th"],"manual_swap":["Warn","\nChecks for manual swapping.\n\nNote that the lint will not be emitted in const blocks, as the suggest"],"unsound_collection_transmute":["Deny","\nChecks for transmutes between collections whose\ntypes have different ABI, size or alignment.\n\n Why "],"zero_sized_map_values":[C[0],"\nChecks for maps with zero-sized value types anywhere in the code.\n\n Why is this bad?\nSince there is"],"excessive_precision":["Warn","\nChecks for float literals with a precision greater\nthan that supported by the underlying type.\n\n Wh"],"map_collect_result_unit":["Warn","\nChecks for usage of _.map(_).collect::<Result<(), _>().\n\n Why is this bad?\nUsing try_for_each inste"],"needless_borrowed_reference":["Warn","\nChecks for bindings that needlessly destructure a reference and borrow the inner\nvalue with &ref.\n\n"],"default_constructed_unit_structs":["Warn","\nChecks for construction on unit struct using default.\n\n Why is this bad?\nThis adds code complexity "],"neg_cmp_op_on_partial_ord":["Warn","\nChecks for the usage of negated comparison operators on types which only implement\nPartialOrd (e.g."],"print_literal":["Warn","\nThis lint warns about the use of literals as print!/println! args.\n\n Why is this bad?\nUsing literal"],"manual_range_contains":["Warn","\nChecks for expressions like x >= 3 && x < 8 that could\nbe more readably expressed as (3..8).contain"],"missing_errors_doc":[C[0],"\nChecks the doc comments of publicly visible functions that\nreturn a Result type and warns if there "],"rc_mutex":[C[0],"\nChecks for Rc<Mutex<T>>.\n\n Why is this bad?\nRc is used in single thread and Mutex is used in multi "],"redundant_type_annotations":[C[0],"\nWarns about needless / redundant type annotations.\n\n Why is this bad?\nCode without type annotations"],"shadow_same":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, while just changing reference leve"],"big_endian_bytes":[C[0],"\nChecks for the usage of the to_be_bytes method and/or the function from_be_bytes.\n\n Why is this bad"],"len_zero":["Warn","\nChecks for getting the length of something via .len()\njust to compare to zero, and suggests using ."],"struct_excessive_bools":[C[0],"\nChecks for excessive\nuse of bools in structs.\n\n Why is this bad?\nExcessive bools in a struct\nis oft"],"unreachable":[C[0],"\nChecks for usage of unreachable!.\n\n Why is this bad?\nThis macro can cause code to panic\n\n Example\nr"],"nonstandard_macro_braces":[C[0],"\nChecks that common macros are used with consistent bracing.\n\n Why is this bad?\nThis is mostly a con"],"useless_let_if_seq":[C[0],"\nChecks for variable declarations immediately followed by a\nconditional affectation.\n\n Why is this b"],"almost_complete_range":["Warn","\nChecks for ranges which almost include the entire range of letters from 'a' to 'z'\nor digits from '"],"no_effect":["Warn","\nChecks for statements which have no effect.\n\n Why is this bad?\nUnlike dead code, these statements a"],"question_mark":["Warn","\nChecks for expressions that could be replaced by the question mark operator.\n\n Why is this bad?\nQue"],"type_complexity":["Warn","\nChecks for types used in structs, parameters and let\ndeclarations above a certain complexity thresh"],"large_enum_variant":["Warn","\nChecks for large size differences between variants on\nenums.\n\n Why is this bad?\nEnum size is bounde"],"explicit_counter_loop":["Warn","\nChecks for loops over slices with an explicit counter\nand suggests the use of .enumerate().\n\n Why i"],"unseparated_literal_suffix":[C[0],"\nWarns if literal suffixes are not separated by an\nunderscore.\nTo enforce unseparated literal suffix"],"box_collection":["Warn","\nChecks for usage of Box<T> where T is a collection such as Vec anywhere in the code.\nCheck the [Box"],"default_instead_of_iter_empty":["Warn","\nIt checks for std::iter::Empty::default() and suggests replacing it with\nstd::iter::empty().\n Why i"],"mem_forget":[C[0],"\nChecks for usage of std::mem::forget(t) where t is\nDrop or has a field that implements Drop.\n\n Why "],"result_map_or_into_option":["Warn","\nChecks for usage of _.map_or(None, Some).\n\n Why is this bad?\nReadability, this can be written more "],"flat_map_option":[C[0],"\nChecks for usage of Iterator::flat_map() where filter_map() could be\nused instead.\n\n Why is this ba"],"manual_is_finite":["Warn","\nChecks for manual is_finite reimplementations\n(i.e., x != <float>::INFINITY && x != <float>::NEG_IN"]}; \ No newline at end of file diff --git a/extension/main.js b/extension/main.js index 49713405..ead6317a 100644 --- a/extension/main.js +++ b/extension/main.js @@ -385,10 +385,10 @@ async function start() { onSearch: (query) => { return lintSearcher.search(query); }, - onFormat: (index, lint) => { + onFormat: (_, lint) => { return { content: `${LINT_URL}#${lint.name}`, - description: `Clippy lint: [${lint.level}] ${c.match(lint.name)} - ${c.dim(c.escape(lint.description))}`, + description: `Clippy lint: [${lint.level}] ${c.match(lint.name)} - ${c.dim(c.escape(c.eliminateTags(lint.description)))}`, } }, });