From de5b322eea01929d7ddf1a52f1f81196686b0611 Mon Sep 17 00:00:00 2001 From: Folyd Date: Wed, 16 Oct 2024 12:27:41 +0800 Subject: [PATCH] Fix lint task --- extension/index/lints.js | 3 +-- rust/src/tasks/lints.rs | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/extension/index/lints.js b/extension/index/lints.js index 543751c..2fd59ed 100644 --- a/extension/index/lints.js +++ b/extension/index/lints.js @@ -1,2 +1 @@ -var C=["Allow","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint has been replaced by manual_","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThe avoid_breaking_exported_api config"];var lintsIndex={"match_same_arms":[C[0],"\nChecks for match with identical arm bodies.\n\nNote: Does not lint on wildcards if the non_exhaustive"],"case_sensitive_file_extension_comparisons":[C[0],"\nChecks for calls to ends_with with possible file extensions\nand suggests to use a case-insensitive "],"print_stderr":[C[0],"\nChecks for printing on *stderr*. The purpose of this lint\nis to catch debugging remnants.\n\n Why is "],"approx_constant":["Deny","\nChecks for floating point literals that approximate\nconstants which are defined in\n[std::f32::const"],"map_flatten":["Warn","\nChecks for usage of _.map(_).flatten(_) on Iterator and Option\n\n Why is this bad?\nReadability, this"],"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"],"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"],"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"],"collapsible_if":["Warn","\nChecks for nested if statements which can be collapsed\nby &&-combining their conditions.\n\n Why is t"],"stable_sort_primitive":[C[0],"\nWhen sorting primitive values (integers, bools, chars, as well\nas arrays, slices, and tuples of suc"],"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"],"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"],"ptr_arg":["Warn","\nThis lint checks for function arguments of type &String, &Vec,\n&PathBuf, and Cow<_>. It will also s"],"collapsible_match":["Warn","\nFinds nested match or if let expressions where the patterns may be \"collapsed\" together\nwithout add"],"eq_op":["Deny","\nChecks for equal operands to comparison, logical and\nbitwise, difference and division binary operat"],"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 "],"manual_non_exhaustive":["Warn","\nChecks for manual implementations of the non-exhaustive pattern.\n\n Why is this bad?\nUsing the [non_"],"needless_borrowed_reference":["Warn","\nChecks for bindings that needlessly destructure a reference and borrow the inner\nvalue with &ref.\n\n"],"redundant_closure":["Warn","\nChecks for closures which just call another function where\nthe function can be called directly. uns"],"strlen_on_c_strings":["Warn","\nChecks for usage of libc::strlen on a CString or CStr value,\nand suggest calling as_bytes().len() o"],"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"],"repeat_vec_with_capacity":["Warn","\nLooks for patterns such as vec![Vec::with_capacity(x); n] or iter::repeat(Vec::with_capacity(x)).\n\n"],"cast_enum_truncation":["Warn","\nChecks for casts from an enum type to an integral type which will definitely truncate the\nvalue.\n\n "],"panicking_unwrap":["Deny","\nChecks for calls of unwrap[_err]() that will always fail.\n\n Why is this bad?\nIf panicking is desire"],"manual_clamp":[C[0],"\nIdentifies good opportunities for a clamp function from std or core, and suggests using it.\n\n Why i"],"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"],"unnecessary_to_owned":["Warn","\nChecks for unnecessary calls to [ToOwned::to_owned](https://doc.rust-lang.org/std/borrow/trait.ToOw"],"inconsistent_struct_constructor":[C[0],"\nChecks for struct constructors where all fields are shorthand and\nthe order of the field init short"],"unnecessary_lazy_evaluations":["Warn","\nAs the counterpart to or_fun_call, this lint looks for unnecessary\nlazily evaluated closures on Opt"],"integer_division":[C[0],"\nChecks for division of integers\n\n Why is this bad?\nWhen outside of some very specific algorithms,\ni"],"transmute_undefined_repr":[C[0],"\nChecks for transmutes between types which do not have a representation defined relative to\neach oth"],"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 "],"large_stack_frames":[C[0],"\nChecks for functions that use a lot of stack space.\n\nThis often happens when constructing a large t"],"float_cmp":[C[0],"\nChecks for (in-)equality comparisons on floating-point\nvalues (apart from zero), except in function"],"redundant_closure_call":["Warn","\nDetects closures called in the same expression where they\nare defined.\n\n Why is this bad?\nIt is unn"],"unused_async":[C[0],"\nChecks for functions that are declared async but have no .awaits inside of them.\n\n Why is this bad?"],"question_mark_used":[C[0],"\nChecks for expressions that use the question mark operator and rejects them.\n\n Why is this bad?\nSom"],"large_const_arrays":["Warn","\nChecks for large const arrays that should\nbe defined as static instead.\n\n Why is this bad?\nPerforma"],"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 "],"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"],"unchecked_duration_subtraction":[C[0],"\nLints subtraction between an Instant and a Duration.\n\n Why is this bad?\nUnchecked subtraction could"],"iter_overeager_cloned":["Warn","\nChecks for usage of _.cloned().<func>() where call to .cloned() can be postponed.\n\n Why is this bad"],"missing_trait_methods":[C[0],"\nChecks if a provided method is used implicitly by a trait\nimplementation. A usage example would be "],"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"],"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"],"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"],"redundant_clone":[C[0],"\nChecks for a redundant clone() (and its relatives) which clones an owned\nvalue that is going to be "],"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"],"use_debug":[C[0],"\nChecks for usage of Debug formatting. The purpose of this\nlint is to catch debugging remnants.\n\n Wh"],"cmp_owned":["Warn","\nChecks for conversions to owned values just for the sake\nof a comparison.\n\n Why is this bad?\nThe co"],"obfuscated_if_else":["Warn","\nChecks for usage of .then_some(..).unwrap_or(..)\n\n Why is this bad?\nThis can be written more clearl"],"invalid_upcast_comparisons":[C[0],"\nChecks for comparisons where the relation is always either\ntrue or false, but where one side has be"],"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"],"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"],"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"],"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"],"infinite_iter":["Deny","\nChecks for iteration that is guaranteed to be infinite.\n\n Why is this bad?\nWhile there may be place"],"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"],"negative_feature_names":[C[0],"\nChecks for negative feature names with prefix no- or not-\n\n Why is this bad?\nFeatures are supposed "],"expect_used":[C[0],"\nChecks for .expect() or .expect_err() calls on Results and .expect() call on Options.\n\n Why is this"],"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"],"redundant_feature_names":[C[0],"\nChecks for feature names with prefix use-, with- or suffix -support\n\n Why is this bad?\nThese prefix"],"significant_drop_in_scrutinee":[C[0],"\nChecks for temporaries returned from function calls in a match scrutinee that have the\nclippy::has_"],"invisible_characters":["Deny","\nChecks for invisible Unicode characters in the code.\n\n Why is this bad?\nHaving an invisible charact"],"manual_is_ascii_check":["Warn","\nSuggests to use dedicated built-in methods,\nis_ascii_(lowercase|uppercase|digit|hexdigit) for check"],"suspicious_unary_op_formatting":["Warn","\nChecks the formatting of a unary operator on the right hand side\nof a binary operator. It lints if "],"doc_markdown":[C[0],"\nChecks for the presence of _, :: or camel-case words\noutside ticks in documentation.\n\n Why is this "],"path_buf_push_overwrite":[C[0],"\n* Checks for [push](https://doc.rust-lang.org/std/path/struct.PathBuf.htmlmethod.push)\ncalls on Pat"],"unusual_byte_groupings":["Warn","\nWarns if hexadecimal or binary literals are not grouped\nby nibble or byte.\n\n Why is this bad?\nNegat"],"wrong_pub_self_convention":["None",C[2]],"str_split_at_newline":[C[0],"\n\nChecks for usages of str.trim().split(\"\\n\") and str.trim().split(\"\\r\\n\").\n\n Why is this bad?\n\nHard"],"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"],"path_ends_with_ext":["Warn","\nLooks for calls to Path::ends_with calls where the argument looks like a file extension.\n\nBy defaul"],"derive_ord_xor_partial_ord":["Deny","\nLints against manual PartialOrd and Ord implementations for types with a derived Ord\nor PartialOrd "],"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 "],"duration_subsec":["Warn","\nChecks for calculation of subsecond microseconds or milliseconds\nfrom other Duration methods.\n\n Why"],"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"],"unwrap_or_default":["Warn","\nChecks for usages of the following functions with an argument that constructs a default value\n(e.g."],"string_lit_as_bytes":[C[0],"\nChecks for the as_bytes method called on string literals\nthat contain only ASCII characters.\n\n Why "],"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 "],"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"],"string_lit_chars_any":[C[0],"\nChecks for <string_lit>.chars().any(|i| i == c).\n\n Why is this bad?\nIt's significantly slower than "],"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"],"unstable_as_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::as_slice, "],"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 "],"print_in_format_impl":["Warn","\nChecks for usage of println, print, eprintln or eprint in an\nimplementation of a formatting trait.\n"],"waker_clone_wake":["Warn","\nChecks for usage of waker.clone().wake()\n\n Why is this bad?\nCloning the waker is not necessary, wak"],"needless_parens_on_range_literals":["Warn","\nThe lint checks for parenthesis on literals in range statements that are\nsuperfluous.\n\n Why is this"],"assign_ops":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint is too subjective, not havin"],"overflow_check_conditional":["Warn","\nDetects classic underflow/overflow checks.\n\n Why is this bad?\nMost classic C underflow/overflow che"],"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"],"wildcard_dependencies":[C[0],"\nChecks for wildcard dependencies in the Cargo.toml.\n\n Why is this bad?\n[As the edition guide says]("],"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"],"cargo_common_metadata":[C[0],"\nChecks to see if all common metadata is defined in\nCargo.toml. See: https://rust-lang-nursery.githu"],"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"],"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"],"single_match":["Warn","\nChecks for matches with a single arm where an if let\nwill usually suffice.\n\nThis intentionally does"],"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"],"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"],"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"],"search_is_some":["Warn","\nChecks for an iterator or string search (such as find(),\nposition(), or rposition()) followed by a "],"arithmetic_side_effects":[C[0],"\nChecks any kind of arithmetic operation of any type.\n\nOperators like +, -, * or << are usually capa"],"missing_asserts_for_indexing":[C[0],"\nChecks for repeated slice indexing without asserting beforehand that the length\nis greater than the"],"missing_spin_loop":["Warn","\nChecks for empty spin loops\n\n Why is this bad?\nThe loop body should have something like thread::par"],"just_underscores_and_digits":["Warn","\nChecks if you have variables whose name consists of just\nunderscores and digits.\n\n Why is this bad?"],"suspicious_arithmetic_impl":["Warn","\nLints for suspicious operations in impls of arithmetic operators, e.g.\nsubtracting elements in an A"],"future_not_send":[C[0],"\nThis lint requires Future implementations returned from\nfunctions and methods to implement the Send"],"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"],"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"],"trailing_empty_array":[C[0],"\nDisplays a warning when a struct with a trailing zero-sized array is declared without a repr attrib"],"upper_case_acronyms":["Warn","\nChecks for fully capitalized names and optionally names containing a capitalized acronym.\n\n Why is "],"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"],"transmuting_null":["Deny","\nChecks for transmute calls which would receive a null pointer.\n\n Why is this bad?\nTransmuting a nul"],"type_repetition_in_bounds":[C[0],"\nThis lint warns about unnecessary type repetitions in trait bounds\n\n Why is this bad?\nRepeating the"],"manual_string_new":[C[0],"\n\nChecks for usage of \"\" to create a String, such as \"\".to_string(), \"\".to_owned(),\nString::from(\"\")"],"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"],"too_many_arguments":["Warn","\nChecks for functions with too many parameters.\n\n Why is this bad?\nFunctions with lots of parameters"],"uninit_vec":["Deny","\nChecks for set_len() call that creates Vec with uninitialized elements.\nThis is commonly caused by "],"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"],"unreadable_literal":[C[0],"\nWarns if a long integral or floating-point constant does\nnot contain underscores.\n\n Why is this bad"],"as_conversions":[C[0],"\nChecks for usage of as conversions.\n\nNote that this lint is specialized in linting *every single* u"],"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"],"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"],"inherent_to_string_shadow_display":["Deny","\nChecks for the definition of inherent methods with a signature of to_string(&self) -> String and if"],"semicolon_inside_block":[C[0],"\n\nSuggests moving the semicolon after a block to the inside of the block, after its last\nexpression."],"extra_unused_type_parameters":["Warn","\nChecks for type parameters in generics that are never used anywhere else.\n\n Why is this bad?\nFuncti"],"disallowed_names":["Warn","\nChecks for usage of disallowed names for variables, such\nas foo.\n\n Why is this bad?\nThese names are"],"four_forward_slashes":["Warn","\nChecks for outer doc comments written with 4 forward slashes (////).\n\n Why is this bad?\nThis is (pr"],"nonminimal_bool":["Warn","\nChecks for boolean expressions that can be written more\nconcisely.\n\n Why is this bad?\nReadability o"],"redundant_guards":["Warn","\nChecks for unnecessary guards in match expressions.\n\n Why is this bad?\nIt's more complex and much l"],"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"],"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"],"inherent_to_string":["Warn","\nChecks for the definition of inherent methods with a signature of to_string(&self) -> String.\n\n Why"],"useless_format":["Warn","\nChecks for the use of format!(\"string literal with no\nargument\") and format!(\"{}\", foo) where foo i"],"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 "],"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"],"zero_prefixed_literal":["Warn","\nWarns if an integral constant literal starts with 0.\n\n Why is this bad?\nIn some languages (includin"],"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"],"modulo_arithmetic":[C[0],"\nChecks for modulo arithmetic.\n\n Why is this bad?\nThe results of modulo (%) operation might differ\nd"],"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"],"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"],"async_yields_async":["Deny","\nChecks for async blocks that yield values of types\nthat can themselves be awaited.\n\n Why is this ba"],"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"],"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"],"drain_collect":["Warn","\nChecks for calls to .drain() that clear the collection, immediately followed by a call to .collect("],"lines_filter_map_ok":["Warn","\nChecks for usage of lines.filter_map(Result::ok) or lines.flat_map(Result::ok)\nwhen lines has type "],"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"],"result_filter_map":["Warn","\nChecks for iterators of Results using .filter(Result::is_ok).map(Result::unwrap) that may\nbe replac"],"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"],"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"],"empty_structs_with_brackets":[C[0],"\nFinds structs without fields (a so-called \"empty struct\") that are declared with brackets.\n\n Why is"],"suspicious_assignment_formatting":["Warn","\nChecks for usage of the non-existent =*, =! and =-\noperators.\n\n Why is this bad?\nThis is either a t"],"single_char_pattern":["Warn","\nChecks for string methods that receive a single-character\nstr as an argument, e.g., _.split(\"x\").\n\n"],"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 "],"await_holding_invalid_type":["Warn","\nAllows users to configure types which should not be held across await\nsuspension points.\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"],"iter_count":["Warn","\nChecks for the use of .iter().count().\n\n Why is this bad?\n.len() is more efficient and more\nreadabl"],"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"],"excessive_nesting":["Warn","\nChecks for blocks which are nested beyond a certain threshold.\n\nNote: Even though this lint is warn"],"ineffective_bit_mask":["Deny","\nChecks for bit masks in comparisons which can be removed\nwithout changing the outcome. The basic st"],"unsafe_vector_initialization":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint used to suggest replacing le"],"wrong_transmute":["Deny","\nChecks for transmutes that can't ever be correct on any\narchitecture.\n\n Why is this bad?\nIt's basic"],"no_effect":["Warn","\nChecks for statements which have no effect.\n\n Why is this bad?\nUnlike dead code, these statements a"],"cognitive_complexity":[C[0],"\nChecks for methods with high cognitive complexity.\n\n Why is this bad?\nMethods of high cognitive com"],"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"],"erasing_op":["Deny","\nChecks for erasing operations, e.g., x * 0.\n\n Why is this bad?\nThe whole expression can be replaced"],"field_reassign_with_default":["Warn","\nChecks for immediate reassignment of fields initialized\nwith Default::default().\n\n Why is this bad?"],"redundant_locals":["Deny","\nChecks for redundant redefinitions of local bindings.\n\n Why is this bad?\nRedundant redefinitions of"],"useless_attribute":["Deny","\nChecks for extern crate and use items annotated with\nlint attributes.\n\nThis lint permits lint attri"],"float_cmp_const":[C[0],"\nChecks for (in-)equality comparisons on floating-point\nvalue and constant, except in functions call"],"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"],"unnecessary_safety_doc":[C[0],"\nChecks for the doc comments of publicly visible\nsafe functions and traits and warns if there is a "],"extra_unused_lifetimes":["Warn","\nChecks for lifetimes in generics that are never used\nanywhere else.\n\n Why is this bad?\nThe addition"],"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 "],"struct_field_names":[C[0],"\nDetects struct fields that are prefixed or suffixed\nby the same characters or the name of the struc"],"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"],"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 -- "],"not_unsafe_ptr_arg_deref":["Deny","\nChecks for public functions that dereference raw pointer\narguments but are not marked unsafe.\n\n Why"],"implied_bounds_in_impls":["Warn","\nLooks for bounds in impl Trait in return position that are implied by other bounds.\nThis can happen"],"needless_pass_by_ref_mut":[C[0],"\nCheck if a &mut function argument is actually used mutably.\n\nBe careful if the function is publicly"],"crosspointer_transmute":["Warn","\nChecks for transmutes between a type T and *T.\n\n Why is this bad?\nIt's easy to mistakenly transmute"],"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_mut_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::as_mut_sli"],"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_"],"extend_with_drain":["Warn","\nChecks for occurrences where one vector gets extended instead of append\n\n Why is this bad?\nUsing ap"],"iter_over_hash_type":[C[0],"\nThis is a restriction lint which prevents the use of hash types (i.e., HashSet and HashMap) in for "],"large_digit_groups":[C[0],"\nWarns if the digits of an integral or floating-point\nconstant are grouped into groups that\nare too "],"min_ident_chars":[C[0],"\nChecks for idents which comprise of a single letter.\n\nNote: This lint can be very noisy when enable"],"misnamed_getters":["Warn","\nChecks for getter methods that return a field that doesn't correspond\nto the name of the method, wh"],"multi_assignments":["Warn","\nChecks for nested assignments.\n\n Why is this bad?\nWhile this is in most cases already a type mismat"],"inefficient_to_string":[C[0],"\nChecks for usage of .to_string() on an &&T where\nT implements ToString directly (like &&str or &&St"],"bad_bit_mask":["Deny","\nChecks for incompatible bit masks in comparisons.\n\nThe formula for detecting if an expression of th"],"recursive_format_impl":["Deny","\nChecks for format trait implementations (e.g. Display) with a recursive call to itself\nwhich uses s"],"suspicious_open_options":["Warn","\nChecks for the suspicious use of OpenOptions::create()\nwithout an explicit OpenOptions::truncate()."],"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 "],"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"],"unnecessary_cast":["Warn","\nChecks for casts to the same type, casts of int literals to integer types, casts of float\nliterals "],"box_collection":["Warn","\nChecks for usage of Box<T> where T is a collection such as Vec anywhere in the code.\nCheck the [Box"],"deref_by_slicing":[C[0],"\nChecks for slicing expressions which are equivalent to dereferencing the\nvalue.\n\n Why is this bad?\n"],"impossible_comparisons":["Deny","\nChecks for double comparisons that can never succeed\n\n Why is this bad?\nThe whole expression can be"],"match_bool":[C[0],"\nChecks for matches where match expression is a bool. It\nsuggests to replace the expression with an "],"needless_else":["Warn","\nChecks for empty else branches.\n\n Why is this bad?\nAn empty else branch does nothing and can be rem"],"separated_literal_suffix":[C[0],"\nWarns if literal suffixes are separated by an underscore.\nTo enforce separated literal suffix style"],"collapsible_else_if":["Warn","\nChecks for collapsible else { if ... } expressions\nthat can be collapsed to else if ....\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"],"await_holding_lock":["Warn","\nChecks for calls to await while holding a non-async-aware MutexGuard.\n\n Why is this bad?\nThe Mutex "],"cast_possible_truncation":[C[0],"\nChecks for casts between numerical types that may\ntruncate large values. This is expected behavior,"],"pub_underscore_fields":[C[0],"\nChecks whether any field of the struct is prefixed with an _ (underscore) and also marked\npub (publ"],"redundant_slicing":["Warn","\nChecks for redundant slicing expressions which use the full range, and\ndo not change the type.\n\n Wh"],"iter_out_of_bounds":["Warn","\nLooks for iterator combinator calls such as .take(x) or .skip(x)\nwhere x is greater than the amount"],"redundant_comparisons":["Deny","\nChecks for ineffective double comparisons against constants.\n\n Why is this bad?\nOnly one of the com"],"unseparated_literal_suffix":[C[0],"\nWarns if literal suffixes are not separated by an\nunderscore.\nTo enforce unseparated literal suffix"],"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"],"mem_replace_with_uninit":["Deny","\nChecks for mem::replace(&mut _, mem::uninitialized())\nand mem::replace(&mut _, mem::zeroed()).\n\n Wh"],"vec_box":["Warn","\nChecks for usage of Vec<Box<T>> where T: Sized anywhere in the code.\nCheck the [Box documentation]("],"almost_complete_range":["Warn","\nChecks for ranges which almost include the entire range of letters from 'a' to 'z'\nor digits from '"],"unnecessary_result_map_or_else":["Warn","\nChecks for usage of .map_or_else() \"map closure\" for Result type.\n\n Why is this bad?\nThis can be wr"],"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"],"filter_map_next":[C[0],"\nChecks for usage of _.filter_map(_).next().\n\n Why is this bad?\nReadability, this can be written mor"],"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"],"impl_hash_borrow_with_str_and_bytes":["Deny","\n\nThis lint is concerned with the semantics of Borrow and Hash for a\ntype that implements all three "],"cast_lossless":[C[0],"\nChecks for casts between numerical types that may\nbe replaced by safe conversion functions.\n\n Why i"],"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"],"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"],"format_in_format_args":["Warn","\nDetects format! within the arguments of another macro that does\nformatting such as format! itself, "],"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"],"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"],"mutable_key_type":["Warn","\nChecks for sets/maps with mutable key types.\n\n Why is this bad?\nAll of HashMap, HashSet, BTreeMap a"],"needless_late_init":["Warn","\nChecks for late initializations that can be replaced by a let statement\nwith an initializer.\n\n Why "],"needless_continue":[C[0],"\nThe lint checks for if-statements appearing in loops\nthat contain a continue statement in either th"],"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"],"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"],"cast_sign_loss":[C[0],"\nChecks for casts from a signed to an unsigned numerical\ntype. In this case, negative values wrap ar"],"manual_filter":["Warn","\nChecks for usage of match which could be implemented using filter\n\n Why is this bad?\nUsing the filt"],"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"],"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 "],"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_join":[C[0],"\nChecks for usage of .collect::<Vec<String>>().join(\"\") on iterators.\n\n Why is this bad?\n.collect::<"],"needless_bool_assign":["Warn","\nChecks for expressions of the form if c { x = true } else { x = false }\n(or vice versa) and suggest"],"unused_rounding":[C[0],"\n\nDetects cases where a whole-number literal float is being rounded, using\nthe floor, ceil, or round"],"needless_update":["Warn","\nChecks for needlessly including a base struct on update\nwhen all fields are changed anyway.\n\nThis l"],"exit":[C[0],"\nDetects calls to the exit() function which terminates the program.\n\n Why is this bad?\nExit terminat"],"partialeq_to_none":["Warn","\n\nChecks for binary comparisons to a literal Option::None.\n\n Why is this bad?\n\nA programmer checking"],"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 "],"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"],"redundant_pattern_matching":["Warn","\nLint for redundant pattern matching over Result, Option,\nstd::task::Poll, std::net::IpAddr or bools"],"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"],"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 "],"let_and_return":["Warn","\nChecks for let-bindings, which are subsequently\nreturned.\n\n Why is this bad?\nIt is just extraneous "],"should_implement_trait":["Warn","\nChecks for methods that should live in a trait\nimplementation of a std trait (see [llogiq's blog\npo"],"needless_doctest_main":["Warn","\nChecks for fn main() { .. } in doctests\n\n Why is this bad?\nThe test can be shorter (and likely more"],"disallowed_types":["Warn","\nDenies the configured types in clippy.toml.\n\nNote: Even though this lint is warn-by-default, it wil"],"naive_bytecount":[C[0],"\nChecks for naive byte counts\n\n Why is this bad?\nThe [bytecount](https://crates.io/crates/bytecount)"],"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"],"map_entry":["Warn","\nChecks for usage of contains_key + insert on HashMap\nor BTreeMap.\n\n Why is this bad?\nUsing entry is"],"thread_local_initializer_can_be_made_const":["Warn","\nSuggests to use const in thread_local! macro if possible.\n Why is this bad?\n\nThe thread_local! macr"],"unimplemented":[C[0],"\nChecks for usage of unimplemented!.\n\n Why is this bad?\nThis macro should not be present in producti"],"manual_memcpy":["Warn","\nChecks for for-loops that manually copy items between\nslices that could be optimized by having a me"],"significant_drop_tightening":[C[0],"\n\nSearches for elements marked with [clippy::has_significant_drop] that could be early\ndropped but a"],"cast_precision_loss":[C[0],"\nChecks for casts from any numerical to a float type where\nthe receiving type cannot store all value"],"let_underscore_untyped":[C[0],"\nChecks for let _ = <expr> without a type annotation, and suggests to either provide one,\nor remove "],"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 "],"result_unit_err":["Warn","\nChecks for public functions that return a Result\nwith an Err type of (). It suggests using a custom"],"suspicious_splitn":["Deny","\nChecks for calls to [splitn]\n(https://doc.rust-lang.org/std/primitive.str.htmlmethod.splitn) and\nre"],"invalid_null_ptr_usage":["Deny","\nThis lint checks for invalid usages of ptr::null.\n\n Why is this bad?\nThis causes undefined behavior"],"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"],"from_over_into":["Warn","\nSearches for implementations of the Into<..> trait and suggests to implement From<..> instead.\n\n Wh"],"result_large_err":["Warn","\nChecks for functions that return Result with an unusually large\nErr-variant.\n\n Why is this bad?\nA R"],"todo":[C[0],"\nChecks for usage of todo!.\n\n Why is this bad?\nThe todo! macro is often used for unfinished code, an"],"assertions_on_constants":["Warn","\nChecks for assert!(true) and assert!(false) calls.\n\n Why is this bad?\nWill be optimized out by the "],"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"],"let_underscore_lock":["Deny","\nChecks for let _ = sync_lock. This supports mutex and rwlock in\nparking_lot. For std locks see the "],"unconditional_recursion":["Warn","\nChecks that there isn't an infinite recursion in PartialEq trait\nimplementation.\n\n Why is this bad?"],"undocumented_unsafe_blocks":[C[0],"\nChecks for unsafe blocks and impls without a // SAFETY: comment\nexplaining why the unsafe operatio"],"ifs_same_cond":["Deny","\nChecks for consecutive ifs with the same condition.\n\n Why is this bad?\nThis is probably a copy & pa"],"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"],"octal_escapes":["Warn","\nChecks for \\0 escapes in string and byte literals that look like octal\ncharacter escapes in C.\n\n Wh"],"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"],"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"],"read_zero_byte_vec":[C[0],"\nThis lint catches reads into a zero-length Vec.\nEspecially in the case of a call to with_capacity, "],"bool_assert_comparison":["Warn","\nThis lint warns about boolean comparisons in assert-like macros.\n\n Why is this bad?\nIt is shorter t"],"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"],"wildcard_imports":[C[0],"\nChecks for wildcard imports use _::*.\n\n Why is this bad?\nwildcard imports can pollute the namespace"],"allow_attributes":[C[0],"\nChecks for usage of the [allow] attribute and suggests replacing it with\nthe [expect] (See [RFC 238"],"test_attr_in_doctest":["Warn","\nChecks for [test] in doctests unless they are marked with\neither ignore, no_run or compile_fail.\n\n "],"needless_collect":[C[0],"\nChecks for functions collecting an iterator when collect\nis not needed.\n\n Why is this bad?\ncollect "],"redundant_allocation":["Warn","\nChecks for usage of redundant allocations anywhere in the code.\n\n Why is this bad?\nExpressions such"],"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"],"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"],"needless_question_mark":["Warn","\nSuggests alternatives for useless applications of ? in terminating expressions\n\n Why is this bad?\nT"],"decimal_literal_representation":[C[0],"\nWarns if there is a better representation for a numeric literal.\n\n Why is this bad?\nEspecially for "],"manual_map":["Warn","\nChecks for usage of match which could be implemented using map\n\n Why is this bad?\nUsing the map met"],"iter_without_into_iter":[C[0],"\nLooks for iter and iter_mut methods without an associated IntoIterator for (&|&mut) Type implementa"],"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"],"overly_complex_bool_expr":["Deny","\nChecks for boolean expressions that contain terminals that\ncan be eliminated.\n\n Why is this bad?\nTh"],"filter_map_bool_then":["Warn","\nChecks for usage of bool::then in Iterator::filter_map.\n\n Why is this bad?\nThis can be written with"],"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"],"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 "],"question_mark":["Warn","\nChecks for expressions that could be replaced by the question mark operator.\n\n Why is this bad?\nQue"],"map_clone":["Warn","\nChecks for usage of map(|x| x.clone()) or\ndereferencing closures for Copy types, on Iterator or Opt"],"if_same_then_else":["Warn","\nChecks for if/else with the same body as the *then* part\nand the *else* part.\n\n Why is this bad?\nTh"],"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_hash_one":["Warn","\nChecks for cases where [BuildHasher::hash_one] can be used.\n\n[BuildHasher::hash_one]: https://doc.r"],"derived_hash_with_manual_eq":["Deny","\nLints against manual PartialEq implementations for types with a derived Hash\nimplementation.\n\n Why "],"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 "],"ptr_cast_constness":[C[0],"\nChecks for as casts between raw pointers which change its constness, namely *const T to\n*mut T and "],"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"],"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"],"redundant_pattern":["Warn","\nChecks for patterns in the form name @ _.\n\n Why is this bad?\nIt's almost always more readable to ju"],"panic":[C[0],"\nChecks for usage of panic!.\n\n Why is this bad?\npanic! will stop the execution of the executable.\n\n "],"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"],"regex_macro":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThe regex! macro does not exist anymor"],"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"],"should_panic_without_expect":[C[0],"\nChecks for [should_panic] attributes without specifying the expected panic message.\n\n Why is this b"],"unused_enumerate_index":["Warn","\nChecks for uses of the enumerate method where the index is unused (_)\n\n Why is this bad?\nThe index "],"manual_str_repeat":["Warn","\nChecks for manual implementations of str::repeat\n\n Why is this bad?\nThese are both harder to read, "],"extend_from_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::extend, wh"],"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"],"manual_is_finite":["Warn","\nChecks for manual is_finite reimplementations\n(i.e., x != <float>::INFINITY && x != <float>::NEG_IN"],"manual_flatten":["Warn","\nChecks for unnecessary if let usage in a for loop\nwhere only the Some or Ok variant of the iterator"],"let_with_type_underscore":["Warn","\nDetects when a variable is declared with an explicit type of _.\n Why is this bad?\nIt adds noise, : "],"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"],"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"],"map_collect_result_unit":["Warn","\nChecks for usage of _.map(_).collect::<Result<(), _>().\n\n Why is this bad?\nUsing try_for_each inste"],"neg_cmp_op_on_partial_ord":["Warn","\nChecks for the usage of negated comparison operators on types which only implement\nPartialOrd (e.g."],"redundant_as_str":["Warn","\nChecks for usage of as_str() on a String chained with a method available on the String itself.\n\n Wh"],"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 "],"declare_interior_mutable_const":["Warn","\nChecks for declaration of const items which is interior\nmutable (e.g., contains a Cell, Mutex, Atom"],"len_zero":["Warn","\nChecks for getting the length of something via .len()\njust to compare to zero, and suggests using ."],"useless_transmute":["Warn","\nChecks for transmutes to the original type of the object\nand transmutes that could be a cast.\n\n Why"],"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"],"index_refutable_slice":[C[0],"\nThe lint checks for slice bindings in patterns that are only used to\naccess individual slice values"],"inline_fn_without_body":["Deny","\nChecks for [inline] on trait methods without bodies\n\n Why is this bad?\nOnly implementations of trai"],"needless_borrow":["Warn","\nChecks for address of operations (&) that are going to\nbe dereferenced immediately by the compiler."],"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_find_map":["Warn","\nChecks for usage of _.find(_).map(_) that can be written more simply\nas find_map(_).\n\n Why is this "],"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 "],"ptr_as_ptr":[C[0],"\nChecks for as casts between raw pointers without changing its mutability,\nnamely *const T to *const"],"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 "],"unnecessary_safety_comment":[C[0],"\nChecks for // SAFETY: comments on safe code.\n\n Why is this bad?\nSafe code has no safety requiremen"],"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"],"explicit_write":["Warn","\nChecks for usage of write!() / writeln()! which can be\nreplaced with (e)print!() / (e)println!()\n\n "],"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 "],"lint_groups_priority":["Deny","\nChecks for lint groups with the same priority as lints in the Cargo.toml\n[[lints] table](https://do"],"iter_nth":["Warn","\nChecks for usage of .iter().nth() (and the related\n.iter_mut().nth()) on standard library types wit"],"zst_offset":["Deny","\nChecks for offset(_), wrapping_{add, sub}, etc. on raw pointers to\nzero-sized types\n\n Why is this b"],"let_unit_value":["Warn","\nChecks for binding a unit value.\n\n Why is this bad?\nA unit value cannot usefully be used anywhere. "],"wildcard_in_or_patterns":["Warn","\nChecks for wildcard pattern used with others patterns in same match arm.\n\n Why is this bad?\nWildcar"],"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"],"manual_unwrap_or":["Warn","\nFinds patterns that reimplement Option::unwrap_or or Result::unwrap_or.\n\n Why is this bad?\nConcise "],"imprecise_flops":[C[0],"\nLooks for floating-point expressions that\ncan be expressed using built-in methods to improve accura"],"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"],"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"],"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"],"double_parens":["Warn","\nChecks for unnecessary double parentheses.\n\n Why is this bad?\nThis makes code harder to read and mi"],"redundant_pub_crate":[C[0],"\nChecks for items declared pub(crate) that are not crate visible because they\nare inside a private m"],"redundant_type_annotations":[C[0],"\nWarns about needless / redundant type annotations.\n\n Why is this bad?\nCode without type annotations"],"suspicious_op_assign_impl":["Warn","\nLints for suspicious operations in impls of OpAssign, e.g.\nsubtracting elements in an AddAssign imp"],"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"],"single_char_add_str":["Warn","\nWarns when using push_str/insert_str with a single-character string literal\nwhere push/insert with "],"read_line_without_trim":["Deny","\nLooks for calls to [Stdin::read_line] to read a line from the standard input\ninto a string, then la"],"copy_iterator":[C[0],"\nChecks for types that implement Copy as well as\nIterator.\n\n Why is this bad?\nImplicit copies can be"],"while_let_on_iterator":["Warn","\nChecks for while let expressions on iterators.\n\n Why is this bad?\nReadability. A simple for loop 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"],"skip_while_next":["Warn","\nChecks for usage of _.skip_while(condition).next().\n\n Why is this bad?\nReadability, this can be wri"],"bool_comparison":["Warn","\nChecks for expressions of the form x == true,\nx != true and order comparisons such as x < true (or "],"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"],"empty_line_after_doc_comments":[C[0],"\nChecks for empty lines after documentation comments.\n\n Why is this bad?\nThe documentation comment w"],"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'"],"comparison_chain":["Warn","\nChecks comparison chains written with if that can be\nrewritten with match and cmp.\n\n Why is this ba"],"option_env_unwrap":["Deny","\nChecks for usage of option_env!(...).unwrap() and\nsuggests usage of the env! macro.\n\n Why is this b"],"unused_collect":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint has been superseded by [must"],"use_self":[C[0],"\nChecks for unnecessary repetition of structure name when a\nreplacement with Self is applicable.\n\n W"],"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"],"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"],"needless_return_with_question_mark":["Warn","\nChecks for return statements on Err paired with the ? operator.\n\n Why is this bad?\nThe return is un"],"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"],"debug_assert_with_mut_call":[C[0],"\nChecks for function/method calls with a mutable\nparameter in debug_assert!, debug_assert_eq! and de"],"suspicious_map":["Warn","\nChecks for calls to map followed by a count.\n\n Why is this bad?\nIt looks suspicious. Maybe map was "],"no_effect_underscore_binding":[C[0],"\nChecks for binding to underscore prefixed variable without side-effects.\n\n Why is this bad?\nUnlike "],"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"],"transmute_int_to_non_zero":["Warn","\nChecks for transmutes from integers to NonZero* types, and suggests their new_unchecked\nmethod inst"],"default_numeric_fallback":[C[0],"\nChecks for usage of unconstrained numeric literals which may cause default numeric fallback in type"],"trivially_copy_pass_by_ref":[C[0],"\nChecks for functions taking arguments by reference, where\nthe argument type is Copy and small enoug"],"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"],"manual_assert":[C[0],"\nDetects if-then-panic! that can be replaced with assert!.\n\n Why is this bad?\nassert! is simpler tha"],"non_canonical_clone_impl":["Warn","\nChecks for non-canonical implementations of Clone when Copy is already implemented.\n\n Why is this b"],"unnecessary_fallible_conversions":["Warn","\nChecks for calls to TryInto::try_into and TryFrom::try_from when their infallible counterparts\ncoul"],"possible_missing_comma":["Deny","\nChecks for possible missing comma in an array. It lints if\nan array element is a binary operator ex"],"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 "],"explicit_auto_deref":["Warn","\nChecks for dereferencing expressions which would be covered by auto-deref.\n\n Why is this bad?\nThis "],"unnecessary_filter_map":["Warn","\nChecks for filter_map calls that could be replaced by filter or map.\nMore specifically it checks if"],"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"],"comparison_to_empty":["Warn","\nChecks for comparing to an empty slice such as \"\" or [],\nand suggests using .is_empty() where appli"],"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"],"explicit_counter_loop":["Warn","\nChecks for loops over slices with an explicit counter\nand suggests the use of .enumerate().\n\n Why i"],"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"],"let_underscore_future":["Warn","\nChecks for let _ = <expr> where the resulting type of expr implements Future\n\n Why is this bad?\nFut"],"empty_enum_variants_with_brackets":[C[0],"\nFinds enum variants without fields that are declared with empty brackets.\n\n Why is this bad?\nEmpty "],"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"],"main_recursion":["Warn","\nChecks for recursion using the entrypoint.\n\n Why is this bad?\nApart from special setups (which we c"],"match_result_ok":["Warn","\nChecks for unnecessary ok() in while let.\n\n Why is this bad?\nCalling ok() in while let is unnecessa"],"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"],"disallowed_script_idents":[C[0],"\nChecks for usage of unicode scripts other than those explicitly allowed\nby the lint config.\n\nThis l"],"double_comparisons":["Warn","\nChecks for double comparisons that could be simplified to a single expression.\n\n\n Why is this bad?\n"],"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"],"ref_as_ptr":[C[0],"\nChecks for casts of references to pointer using as\nand suggests std::ptr::from_ref and std::ptr::fr"],"reserve_after_initialization":["Warn","\nInforms the user about a more concise way to create a vector with a known capacity.\n\n Why is this b"],"absurd_extreme_comparisons":["Deny","\nChecks for comparisons where one side of the relation is\neither the minimum or maximum value for it"],"pattern_type_mismatch":[C[0],"\nChecks for patterns that aren't exact representations of the types\nthey are applied to.\n\nTo satisfy"],"default_constructed_unit_structs":["Warn","\nChecks for construction on unit struct using default.\n\n Why is this bad?\nThis adds code complexity "],"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"],"items_after_test_module":["Warn","\nTriggers if an item is declared after the testing module marked with [cfg(test)].\n Why is this bad?"],"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 "],"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"],"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"],"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_"],"unnecessary_map_on_constructor":["Warn","\nSuggests removing the use of a map() (or map_err()) method when an Option or Result\nis being constr"],"unused_format_specs":["Warn","\nDetects [formatting parameters] that have no effect on the output of\nformat!(), println!() or simil"],"write_literal":["Warn","\nThis lint warns about the use of literals as write!/writeln! args.\n\n Why is this bad?\nUsing literal"],"format_collect":["Warn","\nChecks for usage of .map(|_| format!(..)).collect::<String>().\n\n Why is this bad?\nThis allocates 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"],"semicolon_if_nothing_returned":[C[0],"\nLooks for blocks of expressions and fires if the last expression returns\n() but is not followed by "],"filter_map":["None",C[1]],"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 "],"duplicate_mod":["Warn","\nChecks for files that are included as modules multiple times.\n\n Why is this bad?\nLoading a file as "],"explicit_deref_methods":[C[0],"\nChecks for explicit deref() or deref_mut() method calls.\n\n Why is this bad?\nDereferencing by &*x or"],"implicit_saturating_add":["Warn","\nChecks for implicit saturating addition.\n\n Why is this bad?\nThe built-in function is more readable "],"seek_from_current":["Warn","\n\nChecks an argument of seek method of Seek trait\nand if it start seek from SeekFrom::Current(0), su"],"collapsible_str_replace":["Warn","\nChecks for consecutive calls to str::replace (2 or more)\nthat can be collapsed into a single call.\n"],"type_complexity":["Warn","\nChecks for types used in structs, parameters and let\ndeclarations above a certain complexity thresh"],"deprecated_semver":["Deny","\nChecks for [deprecated] annotations with a since\nfield that is not a valid semantic version. Also a"],"mixed_case_hex_literals":["Warn","\nWarns on hexadecimal literals with mixed-case letter\ndigits.\n\n Why is this bad?\nIt looks confusing."],"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"],"err_expect":["Warn","\nChecks for .err().expect() calls on the Result type.\n\n Why is this bad?\n.expect_err() can be called"],"option_option":[C[0],"\nChecks for usage of Option<Option<_>> in function signatures and type\ndefinitions\n\n Why is this bad"],"unneeded_field_pattern":[C[0],"\nChecks for structure field patterns bound to wildcards.\n\n Why is this bad?\nUsing .. instead is shor"],"needless_splitn":["Warn","\nChecks for usage of str::splitn (or str::rsplitn) where using str::split would be the same.\n Why is"],"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"],"char_lit_as_u8":["Warn","\nChecks for expressions where a character literal is cast\nto u8 and suggests using a byte literal in"],"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 "],"redundant_static_lifetimes":["Warn","\nChecks for constants and statics with an explicit 'static lifetime.\n\n Why is this bad?\nAdding 'stat"],"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"],"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 "],"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"],"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"],"mut_mutex_lock":["Warn","\nChecks for &mut Mutex::lock calls\n\n Why is this bad?\nMutex::lock is less efficient than\ncalling Mut"],"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"],"box_default":["Warn","\nchecks for Box::new(T::default()), which is better written as\nBox::<T>::default().\n\n Why is this ba"],"to_string_trait_impl":["Warn","\nChecks for direct implementations of ToString.\n Why is this bad?\nThis trait is automatically implem"],"or_fun_call":[C[0],"\nChecks for calls to .or(foo(..)), .unwrap_or(foo(..)),\n.or_insert(foo(..)) etc., and suggests to us"],"unnested_or_patterns":[C[0],"\nChecks for unnested or-patterns, e.g., Some(0) | Some(2) and\nsuggests replacing the pattern with a "],"should_assert_eq":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for assert!(a == b)"],"unused_peekable":[C[0],"\nChecks for the creation of a peekable iterator that is never .peek()ed\n\n Why is this bad?\nCreating "],"empty_loop":["Warn","\nChecks for empty loop expressions.\n\n Why is this bad?\nThese busy loops burn CPU cycles without doin"],"suspicious_operation_groupings":[C[0],"\nChecks for unlikely usages of binary operators that are almost\ncertainly typos and/or copy/paste er"],"unnecessary_fold":["Warn","\nChecks for usage of fold when a more succinct alternative exists.\nSpecifically, this checks for fol"],"iter_kv_map":["Warn","\n\nChecks for iterating a map (HashMap or BTreeMap) and\nignoring either the keys or values.\n\n Why is "],"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"],"double_must_use":["Warn","\nChecks for a [must_use] attribute without\nfurther information on functions and methods that return "],"as_underscore":[C[0],"\nChecks for the usage of as _ conversion using inferred type.\n\n Why is this bad?\nThe conversion migh"],"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"],"readonly_write_lock":[C[0],"\nLooks for calls to RwLock::write where the lock is only used for reading.\n\n Why is this bad?\nThe wr"],"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"],"print_stdout":[C[0],"\nChecks for printing on *stdout*. The purpose of this lint\nis to catch debugging remnants.\n\n Why is "],"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"],"blanket_clippy_restriction_lints":["Warn","\nChecks for warn/deny/forbid attributes targeting the whole clippy::restriction category.\n\n Why is t"],"missing_fields_in_debug":[C[0],"\nChecks for manual [core::fmt::Debug](https://doc.rust-lang.org/core/fmt/trait.Debug.html) implement"],"init_numbered_fields":["Warn","\nChecks for tuple structs initialized with field syntax.\nIt will however not lint if a base initiali"],"option_filter_map":["Warn","\nChecks for iterators of Options using .filter(Option::is_some).map(Option::unwrap) that may\nbe repl"],"unwrap_in_result":[C[0],"\nChecks for functions of type Result that contain expect() or unwrap()\n\n Why is this bad?\nThese func"],"ref_patterns":[C[0],"\nChecks for usages of the ref keyword.\n Why is this bad?\nThe ref keyword can be confusing for people"],"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"],"useless_conversion":["Warn","\nChecks for Into, TryInto, From, TryFrom, or IntoIter calls\nwhich uselessly convert to the same type"],"unnecessary_find_map":["Warn","\nChecks for find_map calls that could be replaced by find or map. More\nspecifically it checks if the"],"almost_swapped":["Deny","\nChecks for foo = bar; bar = foo sequences.\n\n Why is this bad?\nThis looks like a failed attempt to s"],"deref_addrof":["Warn","\nChecks for usage of *& and *&mut in expressions.\n\n Why is this bad?\nImmediately dereferencing a ref"],"excessive_precision":["Warn","\nChecks for float literals with a precision greater\nthan that supported by the underlying type.\n\n Wh"],"shadow_same":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, while just changing reference leve"],"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"],"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"],"missing_safety_doc":["Warn","\nChecks for the doc comments of publicly visible\nunsafe functions and warns if there is no Safety s"],"unnecessary_sort_by":["Warn","\nChecks for usage of Vec::sort_by passing in a closure\nwhich compares the two arguments, either dire"],"eager_transmute":["Deny","\nChecks for integer validity checks, followed by a transmute that is (incorrectly) evaluated\neagerly"],"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"],"inline_always":[C[0],"\nChecks for items annotated with [inline(always)],\nunless the annotated function is empty or simply "],"wrong_self_convention":["Warn","\nChecks for methods with certain name prefixes or suffixes, and which\ndo not adhere to standard conv"],"join_absolute_paths":["Warn","\nChecks for calls to Path::join that start with a path separator (\\\\ or /).\n\n Why is this bad?\nIf th"],"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"],"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"],"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"],"large_enum_variant":["Warn","\nChecks for large size differences between variants on\nenums.\n\n Why is this bad?\nEnum size is bounde"],"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"],"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"],"manual_find":["Warn","\nChecks for manual implementations of Iterator::find\n\n Why is this bad?\nIt doesn't affect performanc"],"needless_bitwise_bool":[C[0],"\nChecks for usage of bitwise and/or operators between booleans, where performance may be improved by"],"mismatched_target_os":["Deny","\nChecks for cfg attributes having operating systems used in target family position.\n\n Why is this ba"],"if_let_redundant_pattern_matching":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThe original rule will only lint for i"],"needless_option_as_deref":["Warn","\nChecks for no-op uses of Option::{as_deref, as_deref_mut},\nfor example, Option<&T>::as_deref() retu"],"needless_bool":["Warn","\nChecks for expressions of the form if c { true } else {\nfalse } (or vice versa) and suggests using "],"nonsensical_open_options":["Deny","\nChecks for duplicate open options as well as combinations\nthat make no sense.\n\n Why is this bad?\nIn"],"collection_is_never_read":[C[0],"\nChecks for collections that are never queried.\n\n Why is this bad?\nPutting effort into constructing "],"replace_consts":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nAssociated-constants are now preferred"],"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 "],"large_types_passed_by_value":[C[0],"\nChecks for functions taking arguments by value, where\nthe argument type is Copy and large enough to"],"unused_io_amount":["Deny","\nChecks for unused written/read amount.\n\n Why is this bad?\nio::Write::write(_vectored) and\nio::Read:"],"manual_filter_map":["Warn","\nChecks for usage of _.filter(_).map(_) that can be written more simply\nas filter_map(_).\n\n Why is t"],"expect_fun_call":["Warn","\nChecks for calls to .expect(&format!(...)), .expect(foo(..)),\netc., and suggests to use unwrap_or_e"],"non_canonical_partial_ord_impl":["Warn","\nChecks for non-canonical implementations of PartialOrd when Ord is already implemented.\n\n Why is th"],"useless_asref":["Warn","\nChecks for usage of .as_ref() or .as_mut() where the\ntypes before and after the call are the same.\n"],"iter_filter_is_some":[C[0],"\nChecks for usage of .filter(Option::is_some) that may be replaced with a .flatten() call.\nThis lint"],"doc_link_with_quotes":[C[0],"\nDetects the syntax ['foo'] in documentation comments (notice quotes instead of backticks)\noutside o"],"derivable_impls":["Warn","\nDetects manual std::default::Default implementations that are identical to a derived implementation"],"exhaustive_enums":[C[0],"\nWarns on any exported enums that are not tagged [non_exhaustive]\n\n Why is this bad?\nExhaustive enum"],"option_if_let_else":[C[0],"\nLints usage of if let Some(v) = ... { y } else { x } and\nmatch .. { Some(v) => y, None/_ => x } whi"],"unit_cmp":["Deny","\nChecks for comparisons to unit. This includes all binary\ncomparisons (like == and <) and asserts.\n\n"],"toplevel_ref_arg":["Warn","\nChecks for function arguments and let bindings denoted as\nref.\n\n Why is this bad?\nThe ref declarati"],"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 "],"self_assignment":["Deny","\nChecks for explicit self-assignments.\n\n Why is this bad?\nSelf-assignments are redundant and unlikel"],"implicit_hasher":[C[0],"\nChecks for public impl or fn missing generalization\nover different hashers and implicitly defaultin"],"missing_assert_message":[C[0],"\nChecks assertions without a custom panic message.\n\n Why is this bad?\nWithout a good custom message,"],"default_instead_of_iter_empty":["Warn","\nIt checks for std::iter::Empty::default() and suggests replacing it with\nstd::iter::empty().\n Why i"],"allow_attributes_without_reason":[C[0],"\nChecks for attributes that allow lints without a reason.\n\n(This requires the lint_reasons feature)\n"],"blocks_in_conditions":["Warn","\nChecks for if conditions that use blocks containing an\nexpression, statements or conditions that us"],"double_neg":["Warn","\nDetects expressions of the form --x.\n\n Why is this bad?\nIt can mislead C/C++ programmers to think x"],"missing_panics_doc":[C[0],"\nChecks the doc comments of publicly visible functions that\nmay panic and warns if there is no Pani"],"manual_rem_euclid":["Warn","\nChecks for an expression like ((x % 4) + 4) % 4 which is a common manual reimplementation\nof x.rem_"],"must_use_unit":["Warn","\nChecks for a [must_use] attribute on\nunit-returning functions and methods.\n\n Why is this bad?\nUnit "],"float_arithmetic":[C[0],"\nChecks for float arithmetic.\n\n Why is this bad?\nFor some embedded systems or kernel development, it"],"suspicious_command_arg_space":["Warn","\n\nChecks for Command::arg() invocations that look like they\nshould be multiple arguments instead, su"],"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"],"while_let_loop":["Warn","\nDetects loop + match combinations that are easier\nwritten as a while let loop.\n\n Why is this bad?\nT"],"tests_outside_test_module":[C[0],"\nTriggers when a testing function (marked with the [test] attribute) isn't inside a testing module\n("],"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 "],"needless_match":["Warn","\nChecks for unnecessary match or match-like if let returns for Option and Result\nwhen function signa"],"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 "],"invalid_regex":["Deny","\nChecks [regex](https://crates.io/crates/regex) creation\n(with Regex::new, RegexBuilder::new, or Reg"],"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"],"cast_ptr_alignment":[C[0],"\nChecks for casts, using as or pointer::cast,\nfrom a less-strictly-aligned pointer to a more-strictl"],"ignored_unit_patterns":[C[0],"\nChecks for usage of _ in patterns of type ().\n\n Why is this bad?\nMatching with () explicitly instea"],"rest_pat_in_fully_bound_structs":[C[0],"\nChecks for unnecessary '..' pattern binding on struct when all fields are explicitly matched.\n\n Why"],"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"],"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"],"enum_variant_names":["Warn","\nDetects enumeration variants that are prefixed or suffixed\nby the same characters.\n\n Why is this ba"],"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 "],"precedence":["Warn","\nChecks for operations where precedence may be unclear\nand suggests to add parentheses. Currently it"],"uninit_assumed_init":["Deny","\nChecks for MaybeUninit::uninit().assume_init().\n\n Why is this bad?\nFor most types, this is undefine"],"unnecessary_mut_passed":["Warn","\nDetects passing a mutable reference to a function that only\nrequires an immutable reference.\n\n Why "],"while_immutable_condition":["Deny","\nChecks whether variables used within while loop condition\ncan be (and are) mutated in the body.\n\n W"],"fn_address_comparisons":["Deny","\nChecks for comparisons with an address of a function item.\n\n Why is this bad?\nFunction item address"],"needless_if":["Warn","\nChecks for empty if branches with no else branch.\n\n Why is this bad?\nIt can be entirely omitted, an"],"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"],"missing_errors_doc":[C[0],"\nChecks the doc comments of publicly visible functions that\nreturn a Result type and warns if there "],"multiple_inherent_impl":[C[0],"\nChecks for multiple inherent implementations of a struct\n\n Why is this bad?\nSplitting the implement"],"needless_lifetimes":["Warn","\nChecks for lifetime annotations which can be removed by\nrelying on lifetime elision.\n\n Why is this "],"option_as_ref_cloned":[C[0],"\nChecks for usage of .as_ref().cloned() and .as_mut().cloned() on Options\n\n Why is this bad?\nThis ca"],"indexing_slicing":[C[0],"\nChecks for usage of indexing or slicing. Arrays are special cases, this lint\ndoes report on arrays "],"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"],"find_map":["None",C[1]],"min_max":["Deny","\nChecks for expressions where std::cmp::min and max are\nused to clamp values, but switched so that t"],"missing_enforced_import_renames":["Warn","\nChecks for imports that do not rename the item as specified\nin the enforced-import-renames config o"],"into_iter_without_iter":[C[0],"\nThis is the opposite of the iter_without_into_iter lint.\nIt looks for IntoIterator for (&|&mut) Typ"],"float_equality_without_abs":["Warn","\nChecks for statements of the form (a - b) < f32::EPSILON or\n(a - b) < f64::EPSILON. Notes the missi"],"infallible_destructuring_match":["Warn","\nChecks for matches being used to destructure a single-variant enum\nor tuple struct where a let will"],"manual_retain":["Warn","\nChecks for code to be replaced by .retain().\n Why is this bad?\n.retain() is simpler and avoids need"],"disallowed_methods":["Warn","\nDenies the configured methods and functions in clippy.toml\n\nNote: Even though this lint is warn-by-"],"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 "],"self_named_constructors":["Warn","\nWarns when constructors have the same name as their types.\n\n Why is this bad?\nRepeating the name of"],"cast_slice_different_sizes":["Deny","\nChecks for as casts between raw pointers to slices with differently sized elements.\n\n Why is this b"],"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 "],"shadow_unrelated":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, either without an initialization o"],"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"],"single_component_path_imports":["Warn","\nChecking for imports with single component use path.\n\n Why is this bad?\nImport with single componen"],"unneeded_wildcard_pattern":["Warn","\nChecks for tuple patterns with a wildcard\npattern (_) is next to a rest pattern (..).\n\n_NOTE_: Whil"],"unnecessary_literal_unwrap":["Warn","\nChecks for .unwrap() related calls on Results and Options that are constructed.\n\n Why is this bad?\n"],"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"],"zero_ptr":["Warn","\nCatch casts from 0 to some pointer type\n\n Why is this bad?\nThis generally means null and is better "],"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"],"iter_filter_is_ok":[C[0],"\nChecks for usage of .filter(Result::is_ok) that may be replaced with a .flatten() call.\nThis lint w"],"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_replace":["Warn","\nChecks for replace statements which have no effect.\n\n Why is this bad?\nIt's either a mistake or con"],"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"],"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"],"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"],"or_then_unwrap":["Warn","\nChecks for .or(…).unwrap() calls to Options and Results.\n\n Why is this bad?\nYou should use .unwra"],"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"],"manual_swap":["Warn","\nChecks for manual swapping.\n\nNote that the lint will not be emitted in const blocks, as the suggest"],"option_map_or_err_ok":["Warn","\nChecks for usage of _.map_or(Err(_), Ok).\n\n Why is this bad?\nReadability, this can be written more "],"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"],"duplicate_underscore_argument":["Warn","\nChecks for function arguments having the similar names\ndiffering by an underscore.\n\n Why is this ba"],"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"],"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"],"borrow_interior_mutable_const":["Warn","\nChecks if const items which is interior mutable (e.g.,\ncontains a Cell, Mutex, AtomicXxxx, etc.) ha"],"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 "],"unit_arg":["Warn","\nChecks for passing a unit value as an argument to a function without using a\nunit literal (()).\n\n W"],"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"],"inconsistent_digit_grouping":["Warn","\nWarns if an integral or floating-point constant is\ngrouped inconsistently with underscores.\n\n Why i"],"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"],"mut_from_ref":["Deny","\nThis lint checks for functions that take immutable references and return\nmutable ones. This will no"],"borrowed_box":["Warn","\nChecks for usage of &Box<T> anywhere in the code.\nCheck the [Box documentation](https://doc.rust-la"],"incompatible_msrv":["Warn","\n\nThis lint checks that no function newer than the defined MSRV (minimum\nsupported rust version) is "],"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"],"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"],"deprecated_cfg_attr":["Warn","\nChecks for [cfg_attr(rustfmt, rustfmt_skip)] and suggests to replace it\nwith [rustfmt::skip].\n\n Why"],"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"],"print_literal":["Warn","\nThis lint warns about the use of literals as print!/println! args.\n\n Why is this bad?\nUsing literal"],"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"],"serde_api_misuse":["Deny","\nChecks for misuses of the serde API.\n\n Why is this bad?\nSerde is very finnicky about how its API sh"],"must_use_candidate":[C[0],"\nChecks for public functions that have no\n[must_use] attribute, but return something not already mar"],"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"],"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"],"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 "],"unsound_collection_transmute":["Deny","\nChecks for transmutes between collections whose\ntypes have different ABI, size or alignment.\n\n Why "],"lossy_float_literal":[C[0],"\nChecks for whole number float literals that\ncannot be represented as the underlying type without lo"],"suspicious_doc_comments":["Warn","\nDetects the use of outer doc comments (///, /**) followed by a bang (!): ///!\n\n Why is this bad?\nTr"],"unicode_not_nfc":[C[0],"\nChecks for string literals that contain Unicode in a form\nthat is not equal to its\n[NFC-recompositi"],"misaligned_transmute":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint should never have applied to"],"checked_conversions":[C[0],"\nChecks for explicit bounds checking when casting.\n\n Why is this bad?\nReduces the readability of sta"],"trait_duplication_in_bounds":[C[0],"\nChecks for cases where generics or trait objects are being used and multiple\nsyntax specifications "],"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"],"implicit_clone":[C[0],"\nChecks for the usage of _.to_owned(), vec.to_vec(), or similar when calling _.clone() would be clea"],"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"],"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>)"],"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"],"linkedlist":[C[0],"\nChecks for usage of any LinkedList, suggesting to use a\nVec or a VecDeque (formerly called RingBuf)"],"manual_is_infinite":["Warn","\nChecks for manual is_infinite reimplementations\n(i.e., x == <float>::INFINITY || x == <float>::NEG_"],"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"],"exhaustive_structs":[C[0],"\nWarns on any exported structss that are not tagged [non_exhaustive]\n\n Why is this bad?\nExhaustive s"],"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"],"error_impl_error":[C[0],"\nChecks for types named Error that implement Error.\n\n Why is this bad?\nIt can become confusing when "],"manual_strip":["Warn","\nSuggests using strip_{prefix,suffix} over str::{starts,ends}_with and slicing using\nthe pattern's l"],"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 "],"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("],"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"],"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"],"pub_enum_variant_names":["None",C[2]],"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"],"implicit_saturating_sub":["Warn","\nChecks for implicit saturating subtraction.\n\n Why is this bad?\nSimplicity and readability. Instead "],"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"],"match_like_matches_macro":["Warn","\nChecks for match or if let expressions producing a\nbool that could be written using matches!\n\n Why"],"shadow_reuse":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, while reusing the original value.\n"],"string_slice":[C[0],"\nChecks for slice operations on strings\n\n Why is this bad?\nUTF-8 characters span multiple bytes, and"],"unused_unit":["Warn","\nChecks for unit (()) expressions that can be removed.\n\n Why is this bad?\nSuch expressions add no va"],"maybe_misused_cfg":["Warn","\nChecks for [cfg(features = \"...\")] and suggests to replace it with\n[cfg(feature = \"...\")].\n\nIt also"],"suspicious_xor_used_as_pow":[C[0],"\nWarns for a Bitwise XOR (^) operator being probably confused as a powering. It will not trigger if "],"redundant_field_names":["Warn","\nChecks for fields in struct literals where shorthands\ncould be used.\n\n Why is this bad?\nIf the fiel"],"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_async_fn":["Warn","\nIt checks for manual implementations of async functions.\n\n Why is this bad?\nIt's more idiomatic to "],"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"],"string_add":[C[0],"\nChecks for all instances of x + _ where x is of type\nString, but only if [string_add_assign](string"],"fallible_impl_from":[C[0],"\nChecks for impls of From<..> that contain panic!() or unwrap()\n\n Why is this bad?\nTryFrom should be"],"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"],"needless_raw_string_hashes":[C[0],"\nChecks for raw string literals with an unnecessary amount of hashes around them.\n\n Why is this bad?"],"transmute_null_to_fn":["Deny","\nChecks for null function pointer creation through transmute.\n\n Why is this bad?\nCreating a null fun"],"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"],"unit_return_expecting_ord":["Deny","\nChecks for functions that expect closures of type\nFn(...) -> Ord where the implemented closure retu"],"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"],"for_kv_map":["Warn","\nChecks for iterating a map (HashMap or BTreeMap) and\nignoring either the keys or values.\n\n Why is t"],"unreachable":[C[0],"\nChecks for usage of unreachable!.\n\n Why is this bad?\nThis macro can cause code to panic.\n\n Example\n"],"get_first":["Warn","\nChecks for usage of x.get(0) instead of\nx.first() or x.front().\n\n Why is this bad?\nUsing x.first() "],"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"],"unit_hash":["Deny","\nDetects ().hash(_).\n\n Why is this bad?\nHashing a unit value doesn't do anything as the implementati"],"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"],"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"],"iter_skip_zero":["Deny","\nChecks for usage of .skip(0) on iterators.\n\n Why is this bad?\nThis was likely intended to be .skip("],"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"],"uninhabited_references":[C[0],"\nIt detects references to uninhabited types, such as ! and\nwarns when those are either dereferenced "],"unnecessary_operation":["Warn","\nChecks for expression statements that can be reduced to a\nsub-expression.\n\n Why is this bad?\nExpres"],"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"],"unwrap_used":[C[0],"\nChecks for .unwrap() or .unwrap_err() calls on Results and .unwrap() call on Options.\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 "],"identity_op":["Warn","\nChecks for identity operations, e.g., x + 0.\n\n Why is this bad?\nThis code can be removed without ch"],"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"],"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"],"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"],"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"],"empty_drop":[C[0],"\nChecks for empty Drop implementations.\n\n Why is this bad?\nEmpty Drop implementations have no effect"],"needless_option_take":["Warn","\nChecks for calling take function after as_ref.\n\n Why is this bad?\nRedundant code. take writes None "],"is_digit_ascii_radix":["Warn","\nFinds usages of [char::is_digit](https://doc.rust-lang.org/stable/std/primitive.char.htmlmethod.is_"],"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 "],"module_inception":["Warn","\nChecks for modules that have the same name as their\nparent module\n\n Why is this bad?\nA typical begi"],"absolute_paths":[C[0],"\nChecks for usage of items through absolute paths, like std::env::current_dir.\n\n Why is this bad?\nMa"],"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"],"map_unwrap_or":[C[0],"\nChecks for usage of option.map(_).unwrap_or(_) or option.map(_).unwrap_or_else(_) or\nresult.map(_)."],"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"],"new_without_default":["Warn","\nChecks for public types with a pub fn new() -> Self method and no\nimplementation of\n[Default](https"],"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?"],"disallowed_macros":["Warn","\nDenies the configured macros in clippy.toml\n\nNote: Even though this lint is warn-by-default, it wil"],"mut_mut":[C[0],"\nChecks for instances of mut mut references.\n\n Why is this bad?\nMultiple muts don't add anything mea"],"trivial_regex":[C[0],"\nChecks for trivial [regex](https://crates.io/crates/regex)\ncreation (with Regex::new, RegexBuilder:"],"suboptimal_flops":[C[0],"\nLooks for floating-point expressions that\ncan be expressed using built-in methods to improve both\na"],"partial_pub_fields":[C[0],"\nChecks whether partial fields of a struct are public.\n\nEither make all fields of a type public, or "],"redundant_else":[C[0],"\nChecks for else blocks that can be removed without changing semantics.\n\n Why is this bad?\nThe else "],"manual_instant_elapsed":[C[0],"\nLints subtraction between Instant::now() and another Instant.\n\n Why is this bad?\nIt is easy to acci"],"op_ref":["Warn","\nChecks for arguments to == which have their address\ntaken to satisfy a bound\nand suggests to derefe"],"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"],"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"],"default_union_representation":[C[0],"\nDisplays a warning when a union is declared with the default representation (without a [repr(C)] at"],"ineffective_open_options":["Warn","\nChecks if both .write(true) and .append(true) methods are called\non a same OpenOptions.\n\n Why is th"],"filter_next":["Warn","\nChecks for usage of _.filter(_).next().\n\n Why is this bad?\nReadability, this can be written more co"],"to_string_in_format_args":["Warn","\nChecks for [ToString::to_string](https://doc.rust-lang.org/std/string/trait.ToString.htmltymethod.t"],"useless_vec":["Warn","\nChecks for usage of vec![..] when using [..] would\nbe possible.\n\n Why is this bad?\nThis is less eff"],"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"],"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"],"get_unwrap":[C[0],"\nChecks for usage of .get().unwrap() (or\n.get_mut().unwrap) on a standard library type which impleme"],"partialeq_ne_impl":["Warn","\nChecks for manual re-implementations of PartialEq::ne.\n\n Why is this bad?\nPartialEq::ne is required"],"borrow_deref_ref":["Warn","\nChecks for &*(&T).\n\n Why is this bad?\nDereferencing and then borrowing a reference value has no eff"],"match_ref_pats":["Warn","\nChecks for matches where all arms match a reference,\nsuggesting to remove the reference and deref t"],"suspicious_else_formatting":["Warn","\nChecks for formatting of else. It lints if the else\nis followed immediately by a newline or the els"],"manual_range_contains":["Warn","\nChecks for expressions like x >= 3 && x < 8 that could\nbe more readably expressed as (3..8).contain"],"useless_let_if_seq":[C[0],"\nChecks for variable declarations immediately followed by a\nconditional affectation.\n\n Why is this b"],"needless_borrows_for_generic_args":["Warn","\nChecks for borrow operations (&) that used as a generic argument to a\nfunction when the borrowed va"],"repeat_once":["Warn","\nChecks for usage of .repeat(1) and suggest the following method for each types.\n- .to_string() for "],"trim_split_whitespace":["Warn","\nWarns about calling str::trim (or variants) before str::split_whitespace.\n\n Why is this bad?\nsplit_"],"infinite_loop":[C[0],"\nChecks for infinite loops in a function where the return type is not !\nand lint accordingly.\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 "],"similar_names":[C[0],"\nChecks for names that are very similar and thus confusing.\n\nNote: this lint looks for similar names"],"mismatching_type_param_order":[C[0],"\nChecks for type parameters which are positioned inconsistently between\na type definition and impl b"],"manual_range_patterns":["Warn","\nLooks for combined OR patterns that are all contained in a specific range,\ne.g. 6 | 4 | 5 | 9 | 7 |"]}; -export default lintsIndex; \ 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_","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint has been superseded by rustc"];const lintsIndex={"allow_attributes":[C[0],"\nChecks for usage of the [allow] attribute and suggests replacing it with\nthe [expect] (See [RFC 238"],"needless_maybe_sized":["Warn","\nLints ?Sized bounds applied to type parameters that cannot be unsized\n\n Why is this bad?\nThe ?Sized"],"default_numeric_fallback":[C[0],"\nChecks for usage of unconstrained numeric literals which may cause default numeric fallback in type"],"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 "],"std_instead_of_core":[C[0],"\nFinds items imported through std when available through core.\n\n Why restrict this?\nCrates which hav"],"use_debug":[C[0],"\nChecks for usage of Debug formatting. The purpose of this\nlint is to catch debugging remnants.\n\n Wh"],"match_same_arms":[C[0],"\nChecks for match with identical arm bodies.\n\nNote: Does not lint on wildcards if the non_exhaustive"],"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"],"iter_count":["Warn","\nChecks for the use of .iter().count().\n\n Why is this bad?\n.len() is more efficient and more\nreadabl"],"redundant_closure_call":["Warn","\nDetects closures called in the same expression where they\nare defined.\n\n Why is this bad?\nIt is unn"],"transmute_undefined_repr":[C[0],"\nChecks for transmutes between types which do not have a representation defined relative to\neach oth"],"float_cmp_const":[C[0],"\nChecks for (in-)equality comparisons on floating-point\nvalue and constant, except in functions call"],"pub_enum_variant_names":["None",C[1]],"missing_fields_in_debug":[C[0],"\nChecks for manual [core::fmt::Debug](https://doc.rust-lang.org/core/fmt/trait.Debug.html) implement"],"needless_doctest_main":["Warn","\nChecks for fn main() { .. } in doctests\n\n Why is this bad?\nThe test can be shorter (and likely more"],"overly_complex_bool_expr":["Deny","\nChecks for boolean expressions that contain terminals that\ncan be eliminated.\n\n Why is this bad?\nTh"],"default_instead_of_iter_empty":["Warn","\nIt checks for std::iter::Empty::default() and suggests replacing it with\nstd::iter::empty().\n Why i"],"needless_update":["Warn","\nChecks for needlessly including a base struct on update\nwhen all fields are changed anyway.\n\nThis l"],"unnested_or_patterns":[C[0],"\nChecks for unnested or-patterns, e.g., Some(0) | Some(2) and\nsuggests replacing the pattern with a "],"unnecessary_min_or_max":["Warn","\nChecks for unnecessary calls to min() or max() in the following cases\n- Either both side is constan"],"semicolon_outside_block":[C[0],"\n\nSuggests moving the semicolon from a block's final expression outside of the block.\n\n Why restrict"],"map_entry":["Warn","\nChecks for usage of contains_key + insert on HashMap\nor BTreeMap.\n\n Why is this bad?\nUsing entry is"],"map_clone":["Warn","\nChecks for usage of map(|x| x.clone()) or\ndereferencing closures for Copy types, on Iterator or Opt"],"should_panic_without_expect":[C[0],"\nChecks for [should_panic] attributes without specifying the expected panic message.\n\n Why is this b"],"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"],"as_underscore":[C[0],"\nChecks for the usage of as _ conversion using inferred type.\n\n Why restrict this?\nThe conversion mi"],"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"],"from_over_into":["Warn","\nSearches for implementations of the Into<..> trait and suggests to implement From<..> instead.\n\n Wh"],"let_unit_value":["Warn","\nChecks for binding a unit value.\n\n Why is this bad?\nA unit value cannot usefully be used anywhere. "],"missing_assert_message":[C[0],"\nChecks assertions without a custom panic message.\n\n Why restrict this?\nWithout a good custom messag"],"mutable_key_type":["Warn","\nChecks for sets/maps with mutable key types.\n\n Why is this bad?\nAll of HashMap, HashSet, BTreeMap a"],"borrow_interior_mutable_const":["Warn","\nChecks if const items which is interior mutable (e.g.,\ncontains a Cell, Mutex, AtomicXxxx, etc.) ha"],"zero_ptr":["Warn","\nCatch casts from 0 to some pointer type\n\n Why is this bad?\nThis generally means null and is better "],"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"],"field_scoped_visibility_modifiers":[C[0],"\nChecks for usage of scoped visibility modifiers, like pub(crate), on fields. These\nmake a field vis"],"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"],"redundant_allocation":["Warn","\nChecks for usage of redundant allocations anywhere in the code.\n\n Why is this bad?\nExpressions such"],"thread_local_initializer_can_be_made_const":["Warn","\nSuggests to use const in thread_local! macro if possible.\n Why is this bad?\n\nThe thread_local! macr"],"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 "],"arithmetic_side_effects":[C[0],"\nChecks any kind of arithmetic operation of any type.\n\nOperators like +, -, * or << are usually capa"],"char_lit_as_u8":["Warn","\nChecks for expressions where a character literal is cast\nto u8 and suggests using a byte literal in"],"unit_hash":["Deny","\nDetects ().hash(_).\n\n Why is this bad?\nHashing a unit value doesn't do anything as the implementati"],"redundant_feature_names":[C[0],"\nChecks for feature names with prefix use-, with- or suffix -support\n\n Why is this bad?\nThese prefix"],"needless_splitn":["Warn","\nChecks for usage of str::splitn (or str::rsplitn) where using str::split would be the same.\n Why is"],"needless_option_take":["Warn","\nChecks for calling take function after as_ref.\n\n Why is this bad?\nRedundant code. take writes None "],"pub_with_shorthand":[C[0],"\nChecks for usage of pub(<loc>) with in.\n\n Why restrict this?\nConsistency. Use it or don't, just be "],"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"],"useless_conversion":["Warn","\nChecks for Into, TryInto, From, TryFrom, or IntoIter calls\nwhich uselessly convert to the same type"],"into_iter_without_iter":[C[0],"\nThis is the opposite of the iter_without_into_iter lint.\nIt looks for IntoIterator for (&|&mut) Typ"],"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"],"cmp_owned":["Warn","\nChecks for conversions to owned values just for the sake\nof a comparison.\n\n Why is this bad?\nThe co"],"missing_asserts_for_indexing":[C[0],"\nChecks for repeated slice indexing without asserting beforehand that the length\nis greater than the"],"redundant_closure":["Warn","\nChecks for closures which just call another function where\nthe function can be called directly. uns"],"suspicious_xor_used_as_pow":[C[0],"\nWarns for a Bitwise XOR (^) operator being probably confused as a powering. It will not trigger if "],"needless_bitwise_bool":[C[0],"\nChecks for usage of bitwise and/or operators between booleans, where performance may be improved by"],"inline_always":[C[0],"\nChecks for items annotated with [inline(always)],\nunless the annotated function is empty or simply "],"inherent_to_string":["Warn","\nChecks for the definition of inherent methods with a signature of to_string(&self) -> String.\n\n Why"],"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"],"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"],"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_format":["Warn","\nChecks for the use of format!(\"string literal with no\nargument\") and format!(\"{}\", foo) where foo i"],"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_comparisons":["Deny","\nChecks for ineffective double comparisons against constants.\n\n Why is this bad?\nOnly one of the com"],"self_named_module_files":[C[0],"\nChecks that module layout uses only mod.rs files.\n\n Why restrict this?\nHaving multiple module layou"],"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"],"maybe_misused_cfg":["None",C[3]],"missing_panics_doc":[C[0],"\nChecks the doc comments of publicly visible functions that\nmay panic and warns if there is no Pani"],"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"],"derivable_impls":["Warn","\nDetects manual std::default::Default implementations that are identical to a derived implementation"],"cast_precision_loss":[C[0],"\nChecks for casts from any numerical to a float type where\nthe receiving type cannot store all value"],"large_enum_variant":["Warn","\nChecks for large size differences between variants on\nenums.\n\n Why is this bad?\nEnum size is bounde"],"manual_retain":["Warn","\nChecks for code to be replaced by .retain().\n Why is this bad?\n.retain() is simpler and avoids need"],"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"],"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"],"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 "],"serde_api_misuse":["Deny","\nChecks for misuses of the serde API.\n\n Why is this bad?\nSerde is very finicky about how its API sho"],"cast_sign_loss":[C[0],"\nChecks for casts from a signed to an unsigned numerical\ntype. In this case, negative values wrap ar"],"misaligned_transmute":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint should never have applied to"],"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_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"],"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"],"debug_assert_with_mut_call":[C[0],"\nChecks for function/method calls with a mutable\nparameter in debug_assert!, debug_assert_eq! and de"],"manual_find":["Warn","\nChecks for manual implementations of Iterator::find\n\n Why is this bad?\nIt doesn't affect performanc"],"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?"],"match_bool":[C[0],"\nChecks for matches where match expression is a bool. It\nsuggests to replace the expression with an "],"suspicious_operation_groupings":[C[0],"\nChecks for unlikely usages of binary operators that are almost\ncertainly typos and/or copy/paste er"],"separated_literal_suffix":[C[0],"\nWarns if literal suffixes are separated by an underscore.\nTo enforce separated literal suffix style"],"trivial_regex":[C[0],"\nChecks for trivial [regex](https://crates.io/crates/regex)\ncreation (with Regex::new, RegexBuilder:"],"redundant_else":[C[0],"\nChecks for else blocks that can be removed without changing semantics.\n\n Why is this bad?\nThe else "],"trivially_copy_pass_by_ref":[C[0],"\nChecks for functions taking arguments by reference, where\nthe argument type is Copy and small enoug"],"map_unwrap_or":[C[0],"\nChecks for usage of option.map(_).unwrap_or(_) or option.map(_).unwrap_or_else(_) or\nresult.map(_)."],"err_expect":["Warn","\nChecks for .err().expect() calls on the Result type.\n\n Why is this bad?\n.expect_err() can be called"],"format_collect":["Warn","\nChecks for usage of .map(|_| format!(..)).collect::<String>().\n\n Why is this bad?\nThis allocates a "],"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"],"suspicious_map":["Warn","\nChecks for calls to map followed by a count.\n\n Why is this bad?\nIt looks suspicious. Maybe map was "],"unconditional_recursion":["Warn","\nChecks that there isn't an infinite recursion in trait\nimplementations.\n\n Why is this bad?\nThis is "],"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"],"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"],"find_map":["None",C[2]],"to_string_trait_impl":["Warn","\nChecks for direct implementations of ToString.\n Why is this bad?\nThis trait is automatically implem"],"mismatching_type_param_order":[C[0],"\nChecks for type parameters which are positioned inconsistently between\na type definition and impl b"],"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 "],"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"],"explicit_auto_deref":["Warn","\nChecks for dereferencing expressions which would be covered by auto-deref.\n\n Why is this bad?\nThis "],"manual_unwrap_or":["Warn","\nFinds patterns that reimplement Option::unwrap_or or Result::unwrap_or.\n\n Why is this bad?\nConcise "],"useless_vec":["Warn","\nChecks for usage of vec![..] when using [..] would\nbe possible.\n\n Why is this bad?\nThis is less eff"],"manual_is_variant_and":[C[0],"\nChecks for usage of option.map(f).unwrap_or_default() and result.map(f).unwrap_or_default() where f"],"join_absolute_paths":["Warn","\nChecks for calls to Path::join that start with a path separator (\\\\ or /).\n\n Why is this bad?\nIf th"],"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"],"get_unwrap":[C[0],"\nChecks for usage of .get().unwrap() (or\n.get_mut().unwrap) on a standard library type which impleme"],"redundant_type_annotations":[C[0],"\nWarns about needless / redundant type annotations.\n\n Why restrict this?\nCode without type annotatio"],"indexing_slicing":[C[0],"\nChecks for usage of indexing or slicing. Arrays are special cases, this lint\ndoes report on arrays "],"infinite_loop":[C[0],"\nChecks for infinite loops in a function where the return type is not !\nand lint accordingly.\n\n Why "],"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 "],"mixed_attributes_style":["Warn","\nChecks for items that have the same kind of attributes with mixed styles (inner/outer).\n\n Why is th"],"non_canonical_partial_ord_impl":["Warn","\nChecks for non-canonical implementations of PartialOrd when Ord is already implemented.\n\n Why is th"],"manual_hash_one":["Warn","\nChecks for cases where [BuildHasher::hash_one] can be used.\n\n[BuildHasher::hash_one]: https://doc.r"],"get_first":["Warn","\nChecks for usage of x.get(0) instead of\nx.first() or x.front().\n\n Why is this bad?\nUsing x.first() "],"unused_unit":["Warn","\nChecks for unit (()) expressions that can be removed.\n\n Why is this bad?\nSuch expressions add no va"],"mutex_atomic":[C[0],"\nChecks for usage of Mutex<X> where an atomic will do.\n\n Why restrict this?\nUsing a mutex just to ma"],"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"],"suspicious_unary_op_formatting":["Warn","\nChecks the formatting of a unary operator on the right hand side\nof a binary operator. It lints if "],"impl_trait_in_params":[C[0],"\nLints when impl Trait is being used in a function's parameters.\n\n Why restrict this?\nTurbofish synt"],"vec_box":["Warn","\nChecks for usage of Vec<Box<T>> where T: Sized anywhere in the code.\nCheck the [Box documentation]("],"format_push_string":[C[0],"\nDetects cases where the result of a format! call is\nappended to an existing String.\n\n Why restrict "],"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 restrict th"],"cast_lossless":[C[0],"\nChecks for casts between numerical types that may\nbe replaced by safe conversion functions.\n\n Why i"],"cast_possible_truncation":[C[0],"\nChecks for casts between numerical types that may\ntruncate large values. This is expected behavior,"],"readonly_write_lock":["Warn","\nLooks for calls to RwLock::write where the lock is only used for reading.\n\n Why is this bad?\nThe wr"],"needless_bool_assign":["Warn","\nChecks for expressions of the form if c { x = true } else { x = false }\n(or vice versa) and suggest"],"str_split_at_newline":[C[0],"\n\nChecks for usages of str.trim().split(\"\\n\") and str.trim().split(\"\\r\\n\").\n\n Why is this bad?\n\nHard"],"use_self":[C[0],"\nChecks for unnecessary repetition of structure name when a\nreplacement with Self is applicable.\n\n W"],"useless_let_if_seq":[C[0],"\nChecks for variable declarations immediately followed by a\nconditional affectation.\n\n Why is this b"],"wrong_pub_self_convention":["None",C[1]],"ref_patterns":[C[0],"\nChecks for usages of the ref keyword.\n\n Why restrict this?\nThe ref keyword can be confusing for peo"],"transmute_int_to_non_zero":["Warn","\nChecks for transmutes from T to NonZero<T>, and suggests the new_unchecked\nmethod instead.\n\n Why is"],"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"],"unneeded_field_pattern":[C[0],"\nChecks for structure field patterns bound to wildcards.\n\n Why restrict this?\nUsing .. instead is sh"],"print_stdout":[C[0],"\nChecks for printing on *stdout*. The purpose of this lint\nis to catch debugging remnants.\n\n Why res"],"integer_division":[C[0],"\nChecks for division of integers\n\n Why restrict this?\nWhen outside of some very specific algorithms,"],"filter_next":["Warn","\nChecks for usage of _.filter(_).next().\n\n Why is this bad?\nReadability, this can be written more co"],"multi_assignments":["Warn","\nChecks for nested assignments.\n\n Why is this bad?\nWhile this is in most cases already a type mismat"],"rc_mutex":[C[0],"\nChecks for Rc<Mutex<T>>.\n\n Why restrict this?\nRc is used in single thread and Mutex is used in mult"],"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"],"cognitive_complexity":[C[0],"\nChecks for methods with high cognitive complexity.\n\n Why is this bad?\nMethods of high cognitive com"],"double_must_use":["Warn","\nChecks for a [must_use] attribute without\nfurther information on functions and methods that return "],"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"],"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 "],"significant_drop_in_scrutinee":[C[0],"\nChecks for temporaries returned from function calls in a match scrutinee that have the\nclippy::has_"],"skip_while_next":["Warn","\nChecks for usage of _.skip_while(condition).next().\n\n Why is this bad?\nReadability, this can be wri"],"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"],"unnecessary_operation":["Warn","\nChecks for expression statements that can be reduced to a\nsub-expression.\n\n Why is this bad?\nExpres"],"unwrap_or_default":["Warn","\nChecks for usages of the following functions with an argument that constructs a default value\n(e.g."],"assertions_on_result_states":[C[0],"\nChecks for assert!(r.is_ok()) or assert!(r.is_err()) calls.\n\n Why restrict this?\nThis form of asser"],"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"],"wrong_self_convention":["Warn","\nChecks for methods with certain name prefixes or suffixes, and which\ndo not adhere to standard conv"],"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"],"iter_kv_map":["Warn","\n\nChecks for iterating a map (HashMap or BTreeMap) and\nignoring either the keys or values.\n\n Why is "],"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"],"deprecated_cfg_attr":["Warn","\nChecks for [cfg_attr(rustfmt, rustfmt_skip)] and suggests to replace it\nwith [rustfmt::skip].\n\n Why"],"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"],"manual_flatten":["Warn","\nChecks for unnecessary if let usage in a for loop\nwhere only the Some or Ok variant of the iterator"],"double_parens":["Warn","\nChecks for unnecessary double parentheses.\n\n Why is this bad?\nThis makes code harder to read and mi"],"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"],"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"],"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"],"for_kv_map":["Warn","\nChecks for iterating a map (HashMap or BTreeMap) and\nignoring either the keys or values.\n\n Why is t"],"unnecessary_find_map":["Warn","\nChecks for find_map calls that could be replaced by find or map. More\nspecifically it checks if the"],"unused_enumerate_index":["Warn","\nChecks for uses of the enumerate method where the index is unused (_)\n\n Why is this bad?\nThe index "],"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"],"ineffective_bit_mask":["Deny","\nChecks for bit masks in comparisons which can be removed\nwithout changing the outcome. The basic st"],"pattern_type_mismatch":[C[0],"\nChecks for patterns that aren't exact representations of the types\nthey are applied to.\n\nTo satisfy"],"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"],"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("],"impl_hash_borrow_with_str_and_bytes":["Deny","\n\nThis lint is concerned with the semantics of Borrow and Hash for a\ntype that implements all three "],"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"],"drain_collect":["Warn","\nChecks for calls to .drain() that clear the collection, immediately followed by a call to .collect("],"option_if_let_else":[C[0],"\nLints usage of if let Some(v) = ... { y } else { x } and\nmatch .. { Some(v) => y, None/_ => x } whi"],"while_float":[C[0],"\nChecks for while loops comparing floating point values.\n\n Why is this bad?\nIf you increment floatin"],"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"],"self_assignment":["Deny","\nChecks for explicit self-assignments.\n\n Why is this bad?\nSelf-assignments are redundant and unlikel"],"needless_return":["Warn","\nChecks for return statements at the end of a block.\n\n Why is this bad?\nRemoving the return and semi"],"unnecessary_map_on_constructor":["Warn","\nSuggests removing the use of a map() (or map_err()) method when an Option or Result\nis being constr"],"default_constructed_unit_structs":["Warn","\nChecks for construction on unit struct using default.\n\n Why is this bad?\nThis adds code complexity "],"legacy_numeric_constants":["Warn","\nChecks for usage of <integer>::max_value(), std::<integer>::MAX,\nstd::<float>::EPSILON, etc.\n\n Why "],"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"],"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"],"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"],"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"],"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"],"ineffective_open_options":["Warn","\nChecks if both .write(true) and .append(true) methods are called\non a same OpenOptions.\n\n Why is th"],"large_const_arrays":["Warn","\nChecks for large const arrays that should\nbe defined as static instead.\n\n Why is this bad?\nPerforma"],"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"],"suboptimal_flops":[C[0],"\nLooks for floating-point expressions that\ncan be expressed using built-in methods to improve both\na"],"inherent_to_string_shadow_display":["Deny","\nChecks for the definition of inherent methods with a signature of to_string(&self) -> String and if"],"disallowed_names":["Warn","\nChecks for usage of disallowed names for variables, such\nas foo.\n\n Why is this bad?\nThese names are"],"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"],"comparison_to_empty":["Warn","\nChecks for comparing to an empty slice such as \"\" or [],\nand suggests using .is_empty() where appli"],"fallible_impl_from":[C[0],"\nChecks for impls of From<..> that contain panic!() or unwrap()\n\n Why is this bad?\nTryFrom should be"],"invalid_regex":["Deny","\nChecks [regex](https://crates.io/crates/regex) creation\n(with Regex::new, RegexBuilder::new, or Reg"],"unused_peekable":[C[0],"\nChecks for the creation of a peekable iterator that is never .peek()ed\n\n Why is this bad?\nCreating "],"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"],"string_lit_as_bytes":[C[0],"\nChecks for the as_bytes method called on string literals\nthat contain only ASCII characters.\n\n Why "],"unchecked_duration_subtraction":[C[0],"\nLints subtraction between an Instant and a Duration.\n\n Why is this bad?\nUnchecked subtraction could"],"unit_return_expecting_ord":["Deny","\nChecks for functions that expect closures of type\nFn(...) -> Ord where the implemented closure retu"],"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>)"],"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"],"redundant_field_names":["Warn","\nChecks for fields in struct literals where shorthands\ncould be used.\n\n Why is this bad?\nIf the fiel"],"redundant_pub_crate":[C[0],"\nChecks for items declared pub(crate) that are not crate visible because they\nare inside a private m"],"unused_format_specs":["Warn","\nDetects [formatting parameters] that have no effect on the output of\nformat!(), println!() or simil"],"min_max":["Deny","\nChecks for expressions where std::cmp::min and max are\nused to clamp values, but switched so that t"],"manual_async_fn":["Warn","\nIt checks for manual implementations of async functions.\n\n Why is this bad?\nIt's more idiomatic to "],"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"],"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"],"unicode_not_nfc":[C[0],"\nChecks for string literals that contain Unicode in a form\nthat is not equal to its\n[NFC-recompositi"],"unnecessary_safety_doc":[C[0],"\nChecks for the doc comments of publicly visible\nsafe functions and traits and warns if there is a "],"panic_in_result_fn":[C[0],"\nChecks for usage of panic! or assertions in a function whose return type is Result.\n\n Why restrict "],"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"],"shadow_unrelated":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, either without an initialization o"],"extra_unused_lifetimes":["Warn","\nChecks for lifetimes in generics that are never used\nanywhere else.\n\n Why is this bad?\nThe addition"],"wildcard_enum_match_arm":[C[0],"\nChecks for wildcard enum matches using _.\n\n Why restrict this?\nNew enum variants added by library u"],"single_call_fn":[C[0],"\nChecks for functions that are only used once. Does not lint tests.\n\n Why restrict this?\nIf a functi"],"float_equality_without_abs":["Warn","\nChecks for statements of the form (a - b) < f32::EPSILON or\n(a - b) < f64::EPSILON. Notes the missi"],"inline_fn_without_body":["Deny","\nChecks for [inline] on trait methods without bodies\n\n Why is this bad?\nOnly implementations of trai"],"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"],"unnecessary_sort_by":["Warn","\nChecks for usage of Vec::sort_by passing in a closure\nwhich compares the two arguments, either dire"],"fn_address_comparisons":["Deny","\nChecks for comparisons with an address of a function item.\n\n Why is this bad?\nFunction item address"],"absurd_extreme_comparisons":["Deny","\nChecks for comparisons where one side of the relation is\neither the minimum or maximum value for it"],"almost_swapped":["Deny","\nChecks for foo = bar; bar = foo sequences.\n\n Why is this bad?\nThis looks like a failed attempt to s"],"crosspointer_transmute":["Warn","\nChecks for transmutes between a type T and *T.\n\n Why is this bad?\nIt's easy to mistakenly transmute"],"await_holding_invalid_type":["Warn","\nAllows users to configure types which should not be held across await\nsuspension points.\n\n Why is t"],"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 restrict th"],"impossible_comparisons":["Deny","\nChecks for double comparisons that can never succeed\n\n Why is this bad?\nThe whole expression can be"],"manual_string_new":[C[0],"\n\nChecks for usage of \"\" to create a String, such as \"\".to_string(), \"\".to_owned(),\nString::from(\"\")"],"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"],"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"],"decimal_literal_representation":[C[0],"\nWarns if there is a better representation for a numeric literal.\n\n Why restrict this?\nEspecially fo"],"doc_link_with_quotes":[C[0],"\nDetects the syntax ['foo'] in documentation comments (notice quotes instead of backticks)\noutside o"],"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"],"filetype_is_file":[C[0],"\nChecks for FileType::is_file().\n\n Why restrict this?\nWhen people testing a file type with FileType:"],"is_digit_ascii_radix":["Warn","\nFinds usages of [char::is_digit](https://doc.rust-lang.org/stable/std/primitive.char.htmlmethod.is_"],"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"],"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 "],"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 "],"octal_escapes":["Warn","\nChecks for \\0 escapes in string and byte literals that look like octal\ncharacter escapes in C.\n\n Wh"],"redundant_pattern":["Warn","\nChecks for patterns in the form name @ _.\n\n Why is this bad?\nIt's almost always more readable to ju"],"semicolon_inside_block":[C[0],"\n\nSuggests moving the semicolon after a block to the inside of the block, after its last\nexpression."],"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"],"mixed_case_hex_literals":["Warn","\nWarns on hexadecimal literals with mixed-case letter\ndigits.\n\n Why is this bad?\nIt looks confusing."],"suspicious_arithmetic_impl":["Warn","\nLints for suspicious operations in impls of arithmetic operators, e.g.\nsubtracting elements in an A"],"print_in_format_impl":["Warn","\nChecks for usage of println, print, eprintln or eprint in an\nimplementation of a formatting trait.\n"],"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"],"uninit_vec":["Deny","\nChecks for set_len() call that creates Vec with uninitialized elements.\nThis is commonly caused by "],"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"],"duplicate_underscore_argument":["Warn","\nChecks for function arguments having the similar names\ndiffering by an underscore.\n\n Why is this ba"],"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"],"large_stack_frames":[C[0],"\nChecks for functions that use a lot of stack space.\n\nThis often happens when constructing a large t"],"or_then_unwrap":["Warn","\nChecks for .or(…).unwrap() calls to Options and Results.\n\n Why is this bad?\nYou should use .unwra"],"verbose_file_reads":[C[0],"\nChecks for usage of File::read_to_end and File::read_to_string.\n\n Why restrict this?\nfs::{read, rea"],"deprecated_semver":["Deny","\nChecks for [deprecated] annotations with a since\nfield that is not a valid semantic version. Also a"],"manual_is_infinite":["Warn","\nChecks for manual is_infinite reimplementations\n(i.e., x == <float>::INFINITY || x == <float>::NEG_"],"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"],"path_buf_push_overwrite":[C[0],"\n* Checks for [push](https://doc.rust-lang.org/std/path/struct.PathBuf.htmlmethod.push)\ncalls on Pat"],"mem_replace_with_uninit":["Deny","\nChecks for mem::replace(&mut _, mem::uninitialized())\nand mem::replace(&mut _, mem::zeroed()).\n\n Wh"],"invalid_upcast_comparisons":[C[0],"\nChecks for comparisons where the relation is always either\ntrue or false, but where one side has be"],"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"],"manual_strip":["Warn","\nSuggests using strip_{prefix,suffix} over str::{starts,ends}_with and slicing using\nthe pattern's l"],"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"],"suspicious_assignment_formatting":["Warn","\nChecks for usage of the non-existent =*, =! and =-\noperators.\n\n Why is this bad?\nThis is either a t"],"unnecessary_join":[C[0],"\nChecks for usage of .collect::<Vec<String>>().join(\"\") on iterators.\n\n Why is this bad?\n.collect::<"],"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"],"double_neg":["Warn","\nDetects expressions of the form --x.\n\n Why is this bad?\nIt can mislead C/C++ programmers to think x"],"iter_skip_zero":["Deny","\nChecks for usage of .skip(0) on iterators.\n\n Why is this bad?\nThis was likely intended to be .skip("],"map_err_ignore":[C[0],"\nChecks for instances of map_err(|_| Some::Enum)\n\n Why restrict this?\nThis map_err throws away the o"],"exhaustive_enums":[C[0],"\nWarns on any exported enums that are not tagged [non_exhaustive]\n\n Why restrict this?\nMaking an enu"],"implied_bounds_in_impls":["Warn","\nLooks for bounds in impl Trait in return position that are implied by other bounds.\nThis can happen"],"must_use_unit":["Warn","\nChecks for a [must_use] attribute on\nunit-returning functions and methods.\n\n Why is this bad?\nUnit "],"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"],"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 "],"option_option":[C[0],"\nChecks for usage of Option<Option<_>> in function signatures and type\ndefinitions\n\n Why is this bad"],"result_unit_err":["Warn","\nChecks for public functions that return a Result\nwith an Err type of (). It suggests using a custom"],"write_literal":["Warn","\nThis lint warns about the use of literals as write!/writeln! args.\n\n Why is this bad?\nUsing literal"],"expect_used":[C[0],"\nChecks for .expect() or .expect_err() calls on Results and .expect() call on Options.\n\n Why restric"],"reserve_after_initialization":["Warn","\nInforms the user about a more concise way to create a vector with a known capacity.\n\n Why is this b"],"manual_c_str_literals":[C[0],"\nChecks for the manual creation of C strings (a string with a NUL byte at the end), either\nthrough o"],"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 "],"mut_mutex_lock":["Warn","\nChecks for &mut Mutex::lock calls\n\n Why is this bad?\nMutex::lock is less efficient than\ncalling Mut"],"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"],"unimplemented":[C[0],"\nChecks for usage of unimplemented!.\n\n Why restrict this?\nThis macro, or panics in general, may be u"],"ref_as_ptr":[C[0],"\nChecks for casts of references to pointer using as\nand suggests std::ptr::from_ref and std::ptr::fr"],"unnecessary_fallible_conversions":["Warn","\nChecks for calls to TryInto::try_into and TryFrom::try_from when their infallible counterparts\ncoul"],"precedence":["Warn","\nChecks for operations where precedence may be unclear\nand suggests to add parentheses. Currently it"],"try_err":[C[0],"\nChecks for usage of Err(x)?.\n\n Why restrict this?\nThe ? operator is designed to allow calls that\nca"],"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"],"as_conversions":[C[0],"\nChecks for usage of as conversions.\n\nNote that this lint is specialized in linting *every single* u"],"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"],"single_char_lifetime_names":[C[0],"\nChecks for lifetimes with names which are one character\nlong.\n\n Why restrict this?\nA single charact"],"unused_rounding":[C[0],"\n\nDetects cases where a whole-number literal float is being rounded, using\nthe floor, ceil, or round"],"read_zero_byte_vec":[C[0],"\nThis lint catches reads into a zero-length Vec.\nEspecially in the case of a call to with_capacity, "],"lines_filter_map_ok":["Warn","\nChecks for usage of lines.filter_map(Result::ok) or lines.flat_map(Result::ok)\nwhen lines has type "],"manual_filter_map":["Warn","\nChecks for usage of _.filter(_).map(_) that can be written more simply\nas filter_map(_).\n\n Why is t"],"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"],"seek_from_current":["Warn","\n\nChecks if the seek method of the Seek trait is called with SeekFrom::Current(0),\nand if it is, sug"],"semicolon_if_nothing_returned":[C[0],"\nLooks for blocks of expressions and fires if the last expression returns\n() but is not followed by "],"iter_filter_is_ok":[C[0],"\nChecks for usage of .filter(Result::is_ok) that may be replaced with a .flatten() call.\nThis lint w"],"single_component_path_imports":["Warn","\nChecking for imports with single component use path.\n\n Why is this bad?\nImport with single componen"],"deref_addrof":["Warn","\nChecks for usage of *& and *&mut in expressions.\n\n Why is this bad?\nImmediately dereferencing a ref"],"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 "],"let_and_return":["Warn","\nChecks for let-bindings, which are subsequently\nreturned.\n\n Why is this bad?\nIt is just extraneous "],"trim_split_whitespace":["Warn","\nWarns about calling str::trim (or variants) before str::split_whitespace.\n\n Why is this bad?\nsplit_"],"option_filter_map":["Warn","\nChecks for iterators of Options using .filter(Option::is_some).map(Option::unwrap) that may\nbe repl"],"expect_fun_call":["Warn","\nChecks for calls to .expect(&format!(...)), .expect(foo(..)),\netc., and suggests to use unwrap_or_e"],"doc_markdown":[C[0],"\nChecks for the presence of _, :: or camel-case words\noutside ticks in documentation.\n\n Why is this "],"collapsible_str_replace":["Warn","\nChecks for consecutive calls to str::replace (2 or more)\nthat can be collapsed into a single call.\n"],"macro_metavars_in_unsafe":["Warn","\nLooks for macros that expand metavariables in an unsafe block.\n\n Why is this bad?\nThis hides an uns"],"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"],"needless_if":["Warn","\nChecks for empty if branches with no else branch.\n\n Why is this bad?\nIt can be entirely omitted, an"],"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"],"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"],"tests_outside_test_module":[C[0],"\nTriggers when a testing function (marked with the [test] attribute) isn't inside a testing module\n("],"await_holding_lock":["Warn","\nChecks for calls to await while holding a non-async-aware MutexGuard.\n\n Why is this bad?\nThe Mutex "],"to_string_in_format_args":["Warn","\nChecks for [ToString::to_string](https://doc.rust-lang.org/std/string/trait.ToString.htmltymethod.t"],"renamed_function_params":[C[0],"\nLints when the name of function parameters from trait impl is\ndifferent than its default implementa"],"manual_memcpy":["Warn","\nChecks for for-loops that manually copy items between\nslices that could be optimized by having a me"],"misnamed_getters":["Warn","\nChecks for getter methods that return a field that doesn't correspond\nto the name of the method, wh"],"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"],"doc_lazy_continuation":["Warn","\n\nIn CommonMark Markdown, the language used to write doc comments, a\nparagraph nested within a list "],"let_underscore_must_use":[C[0],"\nChecks for let _ = <expr> where expr is [must_use]\n\n Why restrict this?\nTo ensure that all [must_us"],"disallowed_types":["Warn","\nDenies the configured types in clippy.toml.\n\nNote: Even though this lint is warn-by-default, it wil"],"while_immutable_condition":["Deny","\nChecks whether variables used within while loop condition\ncan be (and are) mutated in the body.\n\n W"],"pub_underscore_fields":[C[0],"\nChecks whether any field of the struct is prefixed with an _ (underscore) and also marked\npub (publ"],"redundant_guards":["Warn","\nChecks for unnecessary guards in match expressions.\n\n Why is this bad?\nIt's more complex and much l"],"unused_io_amount":["Deny","\nChecks for unused written/read amount.\n\n Why is this bad?\nio::Write::write(_vectored) and\nio::Read:"],"wildcard_imports":[C[0],"\nChecks for wildcard imports use _::*.\n\n Why is this bad?\nwildcard imports can pollute the namespace"],"type_repetition_in_bounds":[C[0],"\nThis lint warns about unnecessary type repetitions in trait bounds\n\n Why is this bad?\nRepeating 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"],"inefficient_to_string":[C[0],"\nChecks for usage of .to_string() on an &&T where\nT implements ToString directly (like &&str or &&St"],"ptr_arg":["Warn","\nThis lint checks for function arguments of type &String, &Vec,\n&PathBuf, and Cow<_>. It will also s"],"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"],"implicit_hasher":[C[0],"\nChecks for public impl or fn missing generalization\nover different hashers and implicitly defaultin"],"iter_filter_is_some":[C[0],"\nChecks for usage of .filter(Option::is_some) that may be replaced with a .flatten() call.\nThis lint"],"async_yields_async":["Deny","\nChecks for async blocks that yield values of types\nthat can themselves be awaited.\n\n Why is this ba"],"explicit_counter_loop":["Warn","\nChecks for loops over slices with an explicit counter\nand suggests the use of .enumerate().\n\n Why i"],"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"],"assign_ops":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint is too subjective, not havin"],"redundant_pattern_matching":["Warn","\nLint for redundant pattern matching over Result, Option,\nstd::task::Poll, std::net::IpAddr or bools"],"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 -- "],"manual_range_contains":["Warn","\nChecks for expressions like x >= 3 && x < 8 that could\nbe more readably expressed as (3..8).contain"],"copy_iterator":[C[0],"\nChecks for types that implement Copy as well as\nIterator.\n\n Why is this bad?\nImplicit copies can be"],"eager_transmute":["Deny","\nChecks for integer validity checks, followed by a transmute that is (incorrectly) evaluated\neagerly"],"filter_map_bool_then":["Warn","\nChecks for usage of bool::then in Iterator::filter_map.\n\n Why is this bad?\nThis can be written with"],"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"],"needless_pass_by_ref_mut":[C[0],"\nCheck if a &mut function argument is actually used mutably.\n\nBe careful if the function is publicly"],"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"],"ok_expect":["Warn","\nChecks for usage of ok().expect(..).\n\n Why is this bad?\nBecause you usually call expect() on the Re"],"trait_duplication_in_bounds":[C[0],"\nChecks for cases where generics or trait objects are being used and multiple\nsyntax specifications "],"manual_rem_euclid":["Warn","\nChecks for an expression like ((x % 4) + 4) % 4 which is a common manual reimplementation\nof x.rem_"],"redundant_slicing":["Warn","\nChecks for redundant slicing expressions which use the full range, and\ndo not change the type.\n\n Wh"],"type_id_on_box":["Warn","\nLooks for calls to .type_id() on a Box<dyn _>.\n\n Why is this bad?\nThis almost certainly does not do"],"non_ascii_literal":[C[0],"\nChecks for non-ASCII characters in string and char literals.\n\n Why restrict this?\nYeah, we know, th"],"unnecessary_to_owned":["Warn","\nChecks for unnecessary calls to [ToOwned::to_owned](https://doc.rust-lang.org/std/borrow/trait.ToOw"],"needless_raw_string_hashes":[C[0],"\nChecks for raw string literals with an unnecessary amount of hashes around them.\n\n Why is this bad?"],"match_like_matches_macro":["Warn","\nChecks for match or if let expressions producing a\nbool that could be written using matches!\n\n Why"],"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"],"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"],"derived_hash_with_manual_eq":["Deny","\nLints against manual PartialEq implementations for types with a derived Hash\nimplementation.\n\n Why "],"redundant_static_lifetimes":["Warn","\nChecks for constants and statics with an explicit 'static lifetime.\n\n Why is this bad?\nAdding 'stat"],"large_include_file":[C[0],"\nChecks for the inclusion of large files via include_bytes!()\nor include_str!().\n\n Why restrict this"],"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"],"empty_docs":["Warn","\nDetects documentation that is empty.\n Why is this bad?\nEmpty docs clutter code without adding value"],"manual_is_finite":["Warn","\nChecks for manual is_finite reimplementations\n(i.e., x != <float>::INFINITY && x != <float>::NEG_IN"],"empty_enum":[C[0],"\nChecks for enums with no variants, which therefore are uninhabited types\n(cannot be instantiated).\n"],"naive_bytecount":[C[0],"\nChecks for naive byte counts\n\n Why is this bad?\nThe [bytecount](https://crates.io/crates/bytecount)"],"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"],"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"],"unnecessary_get_then_check":["Warn","\nChecks the usage of .get().is_some() or .get().is_none() on std map types.\n\n Why is this bad?\nIt ca"],"waker_clone_wake":["Warn","\nChecks for usage of waker.clone().wake()\n\n Why is this bad?\nCloning the waker is not necessary, wak"],"negative_feature_names":[C[0],"\nChecks for negative feature names with prefix no- or not-\n\n Why is this bad?\nFeatures are supposed "],"main_recursion":["Warn","\nChecks for recursion using the entrypoint.\n\n Why is this bad?\nApart from special setups (which we c"],"cargo_common_metadata":[C[0],"\nChecks to see if all common metadata is defined in\nCargo.toml. See: https://rust-lang-nursery.githu"],"inconsistent_struct_constructor":[C[0],"\nChecks for struct constructors where all fields are shorthand and\nthe order of the field init short"],"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 "],"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"],"bool_comparison":["Warn","\nChecks for expressions of the form x == true,\nx != true and order comparisons such as x < true (or "],"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_find_map":["Warn","\nChecks for usage of _.find(_).map(_) that can be written more simply\nas find_map(_).\n\n Why is this "],"overflow_check_conditional":["Warn","\nDetects classic underflow/overflow checks.\n\n Why is this bad?\nMost classic C underflow/overflow che"],"almost_complete_range":["Warn","\nChecks for ranges which almost include the entire range of letters from 'a' to 'z'\nor digits from '"],"op_ref":["Warn","\nChecks for arguments to == which have their address\ntaken to satisfy a bound\nand suggests to derefe"],"needless_match":["Warn","\nChecks for unnecessary match or match-like if let returns for Option and Result\nwhen function signa"],"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"],"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 "],"manual_clamp":["Warn","\nIdentifies good opportunities for a clamp function from std or core, and suggests using it.\n\n Why i"],"non_canonical_clone_impl":["Warn","\nChecks for non-canonical implementations of Clone when Copy is already implemented.\n\n Why is this b"],"borrowed_box":["Warn","\nChecks for usage of &Box<T> anywhere in the code.\nCheck the [Box documentation](https://doc.rust-la"],"borrow_deref_ref":["Warn","\nChecks for &*(&T).\n\n Why is this bad?\nDereferencing and then borrowing a reference value has no eff"],"erasing_op":["Deny","\nChecks for erasing operations, e.g., x * 0.\n\n Why is this bad?\nThe whole expression can be replaced"],"map_flatten":["Warn","\nChecks for usage of _.map(_).flatten(_) on Iterator and Option\n\n Why is this bad?\nReadability, this"],"redundant_clone":[C[0],"\nChecks for a redundant clone() (and its relatives) which clones an owned\nvalue that is going to be "],"unnecessary_literal_unwrap":["Warn","\nChecks for .unwrap() related calls on Results and Options that are constructed.\n\n Why is this bad?\n"],"unnecessary_self_imports":[C[0],"\nChecks for imports ending in ::{self}.\n\n Why restrict this?\nIn most cases, this can be written much"],"extend_with_drain":["Warn","\nChecks for occurrences where one vector gets extended instead of append\n\n Why is this bad?\nUsing ap"],"unwrap_used":[C[0],"\nChecks for .unwrap() or .unwrap_err() calls on Results and .unwrap() call on Options.\n\n Why restric"],"upper_case_acronyms":["Warn","\nChecks for fully capitalized names and optionally names containing a capitalized acronym.\n\n Why is "],"panic":[C[0],"\nChecks for usage of panic!.\n\n Why restrict this?\nThis macro, or panics in general, may be unwanted "],"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"],"box_default":["Warn","\nchecks for Box::new(Default::default()), which can be written as\nBox::default().\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 ."],"inline_asm_x86_intel_syntax":[C[0],"\nChecks for usage of Intel x86 assembly syntax.\n\n Why restrict this?\nTo enforce consistent use of AT"],"excessive_nesting":["Warn","\nChecks for blocks which are nested beyond a certain threshold.\n\nNote: Even though this lint is warn"],"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"],"useless_asref":["Warn","\nChecks for usage of .as_ref() or .as_mut() where the\ntypes before and after the call are the same.\n"],"explicit_write":["Warn","\nChecks for usage of write!() / writeln()! which can be\nreplaced with (e)print!() / (e)println!()\n\n "],"float_cmp":[C[0],"\nChecks for (in-)equality comparisons on floating-point\nvalues (apart from zero), except in function"],"missing_errors_doc":[C[0],"\nChecks the doc comments of publicly visible functions that\nreturn a Result type and warns if there "],"assertions_on_constants":["Warn","\nChecks for assert!(true) and assert!(false) calls.\n\n Why is this bad?\nWill be optimized out by the "],"needless_question_mark":["Warn","\nSuggests alternatives for useless applications of ? in terminating expressions\n\n Why is this bad?\nT"],"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_bool":["Warn","\nChecks for expressions of the form if c { true } else {\nfalse } (or vice versa) and suggests using "],"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 "],"large_types_passed_by_value":[C[0],"\nChecks for functions taking arguments by value, where\nthe argument type is Copy and large enough to"],"shadow_same":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, while just changing reference leve"],"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"],"mod_module_files":[C[0],"\nChecks that module layout uses only self named module files; bans mod.rs files.\n\n Why restrict this"],"str_to_string":[C[0],"\nThis lint checks for .to_string() method calls on values of type &str.\n\n Why restrict this?\nThe to_"],"struct_field_names":[C[0],"\nDetects struct fields that are prefixed or suffixed\nby the same characters or the name of the struc"],"unused_collect":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint has been superseded by [must"],"allow_attributes_without_reason":[C[0],"\nChecks for attributes that allow lints without a reason.\n\n Why restrict this?\nJustifying each allow"],"repeat_vec_with_capacity":["Warn","\nLooks for patterns such as vec![Vec::with_capacity(x); n] or iter::repeat(Vec::with_capacity(x)).\n\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 "],"self_named_constructors":["Warn","\nWarns when constructors have the same name as their types.\n\n Why is this bad?\nRepeating the name of"],"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"],"enum_variant_names":["Warn","\nDetects enumeration variants that are prefixed or suffixed\nby the same characters.\n\n Why is this ba"],"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"],"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"],"obfuscated_if_else":["Warn","\nChecks for usage of .then_some(..).unwrap_or(..)\n\n Why is this bad?\nThis can be written more clearl"],"print_stderr":[C[0],"\nChecks for printing on *stderr*. The purpose of this lint\nis to catch debugging remnants.\n\n Why res"],"question_mark_used":[C[0],"\nChecks for expressions that use the question mark operator and rejects them.\n\n Why restrict this?\nS"],"lint_groups_priority":["Deny","\nChecks for lint groups with the same priority as lints in the Cargo.toml\n[[lints] table](https://do"],"extra_unused_type_parameters":["Warn","\nChecks for type parameters in generics that are never used anywhere else.\n\n Why is this bad?\nFuncti"],"not_unsafe_ptr_arg_deref":["Deny","\nChecks for public functions that dereference raw pointer\narguments but are not marked unsafe.\n\n Why"],"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"],"missing_enforced_import_renames":["Warn","\nChecks for imports that do not rename the item as specified\nin the enforced-import-renames config o"],"manual_is_ascii_check":["Warn","\nSuggests to use dedicated built-in methods,\nis_ascii_(lowercase|uppercase|digit|hexdigit) for check"],"if_same_then_else":["Warn","\nChecks for if/else with the same body as the *then* part\nand the *else* part.\n\n Why is this bad?\nTh"],"empty_enum_variants_with_brackets":[C[0],"\nFinds enum variants without fields that are declared with empty brackets.\n\n Why restrict this?\nEmpt"],"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"],"manual_instant_elapsed":[C[0],"\nLints subtraction between Instant::now() and another Instant.\n\n Why is this bad?\nIt is easy to acci"],"manual_non_exhaustive":["Warn","\nChecks for manual implementations of the non-exhaustive pattern.\n\n Why is this bad?\nUsing the [non_"],"comparison_chain":["Warn","\nChecks comparison chains written with if that can be\nrewritten with match and cmp.\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"],"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 "],"needless_character_iteration":["Warn","\nChecks if an iterator is used to check if a string is ascii.\n\n Why is this bad?\nThe str type alread"],"read_line_without_trim":["Deny","\nLooks for calls to [Stdin::read_line] to read a line from the standard input\ninto a string, then la"],"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"],"missing_spin_loop":["Warn","\nChecks for empty spin loops\n\n Why is this bad?\nThe loop body should have something like thread::par"],"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 "],"search_is_some":["Warn","\nChecks for an iterator or string search (such as find(),\nposition(), or rposition()) followed by a "],"stable_sort_primitive":[C[0],"\nWhen sorting primitive values (integers, bools, chars, as well\nas arrays, slices, and tuples of suc"],"suspicious_doc_comments":["Warn","\nDetects the use of outer doc comments (///, /**) followed by a bang (!): ///!\n\n Why is this bad?\nTr"],"manual_inspect":["Warn","\nChecks for uses of map which return the original item.\n\n Why is this bad?\ninspect is both clearer i"],"option_map_or_err_ok":["Warn","\nChecks for usage of _.map_or(Err(_), Ok).\n\n Why is this bad?\nReadability, this can be written more "],"ignored_unit_patterns":[C[0],"\nChecks for usage of _ in patterns of type ().\n\n Why is this bad?\nMatching with () explicitly instea"],"panicking_unwrap":["Deny","\nChecks for calls of unwrap[_err]() that will always fail.\n\n Why is this bad?\nIf panicking is desire"],"slow_vector_initialization":["Warn","\nChecks slow zero-filled vector initialization\n\n Why is this bad?\nThese structures are non-idiomatic"],"type_complexity":["Warn","\nChecks for types used in structs, parameters and let\ndeclarations above a certain complexity thresh"],"manual_map":["Warn","\nChecks for usage of match which could be implemented using map\n\n Why is this bad?\nUsing the map met"],"unsound_collection_transmute":["Deny","\nChecks for transmutes between collections whose\ntypes have different ABI, size or alignment.\n\n Why "],"suspicious_splitn":["Deny","\nChecks for calls to [splitn]\n(https://doc.rust-lang.org/std/primitive.str.htmlmethod.splitn) and\nre"],"empty_line_after_doc_comments":[C[0],"\nChecks for empty lines after documentation comments.\n\n Why is this bad?\nThe documentation comment w"],"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"],"collapsible_else_if":["Warn","\nChecks for collapsible else { if ... } expressions\nthat can be collapsed to else if ....\n\n Why is t"],"blocks_in_conditions":["Warn","\nChecks for if and match conditions that use blocks containing an\nexpression, statements or conditio"],"manual_assert":[C[0],"\nDetects if-then-panic! that can be replaced with assert!.\n\n Why is this bad?\nassert! is simpler tha"],"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"],"todo":[C[0],"\nChecks for usage of todo!.\n\n Why restrict this?\nThe todo! macro indicates the presence of unfinishe"],"future_not_send":[C[0],"\nThis lint requires Future implementations returned from\nfunctions and methods to implement the Send"],"explicit_deref_methods":[C[0],"\nChecks for explicit deref() or deref_mut() method calls.\n\n Why is this bad?\nDereferencing by &*x or"],"implicit_return":[C[0],"\nChecks for missing return statements at the end of a block.\n\n Why restrict this?\nOmitting the retur"],"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"],"must_use_candidate":[C[0],"\nChecks for public functions that have no\n[must_use] attribute, but return something not already mar"],"multiple_bound_locations":["Warn","\nCheck if a generic is defined both in the bound predicate and in the where clause.\n\n Why is this ba"],"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"],"exhaustive_structs":[C[0],"\nWarns on any exported structs that are not tagged [non_exhaustive]\n\n Why restrict this?\nMaking a st"],"iter_nth":["Warn","\nChecks for usage of .iter().nth()/.iter_mut().nth() on standard library types that have\nequivalent "],"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"],"map_collect_result_unit":["Warn","\nChecks for usage of _.map(_).collect::<Result<(), _>().\n\n Why is this bad?\nUsing try_for_each inste"],"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"],"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"],"should_assert_eq":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for assert!(a == b)"],"invisible_characters":["Deny","\nChecks for invisible Unicode characters in the code.\n\n Why is this bad?\nHaving an invisible charact"],"while_let_loop":["Warn","\nDetects loop + match combinations that are easier\nwritten as a while let loop.\n\n Why is this bad?\nT"],"while_let_on_iterator":["Warn","\nChecks for while let expressions on iterators.\n\n Why is this bad?\nReadability. A simple for loop is"],"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"],"regex_macro":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThe regex! macro does not exist anymor"],"zero_repeat_side_effects":["Warn","\nChecks for array or vec initializations which call a function or method,\nbut which have a repeat co"],"unwrap_in_result":[C[0],"\nChecks for functions of type Result that contain expect() or unwrap()\n\n Why restrict this?\nThese fu"],"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"],"manual_pattern_char_comparison":["Warn","\nChecks for manual char comparison in string patterns\n\n Why is this bad?\nThis can be written more co"],"zst_offset":["Deny","\nChecks for offset(_), wrapping_{add, sub}, etc. on raw pointers to\nzero-sized types\n\n Why is this b"],"disallowed_methods":["Warn","\nDenies the configured methods and functions in clippy.toml\n\nNote: Even though this lint is warn-by-"],"missing_transmute_annotations":["Warn","\nChecks if transmute calls have all generics specified.\n\n Why is this bad?\nIf not set, some unexpect"],"result_large_err":["Warn","\nChecks for functions that return Result with an unusually large\nErr-variant.\n\n Why is this bad?\nA R"],"similar_names":[C[0],"\nChecks for names that are very similar and thus confusing.\n\nNote: this lint looks for similar names"],"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"],"alloc_instead_of_core":[C[0],"\nFinds items imported through alloc when available through core.\n\n Why restrict this?\nCrates which h"],"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"],"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 restrict th"],"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"],"unnecessary_result_map_or_else":["Warn","\nChecks for usage of .map_or_else() \"map closure\" for Result type.\n\n Why is this bad?\nThis can be wr"],"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"],"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"],"filter_map":["None",C[2]],"useless_transmute":["Warn","\nChecks for transmutes to the original type of the object\nand transmutes that could be a cast.\n\n Why"],"items_after_test_module":["Warn","\nTriggers if an item is declared after the testing module marked with [cfg(test)].\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"],"invalid_null_ptr_usage":["Deny","\nThis lint checks for invalid usages of ptr::null.\n\n Why is this bad?\nThis causes undefined behavior"],"redundant_as_str":["Warn","\nChecks for usage of as_str() on a String chained with a method available on the String itself.\n\n Wh"],"shadow_reuse":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, while reusing the original value.\n"],"needless_lifetimes":["Warn","\nChecks for lifetime annotations which can be removed by\nrelying on lifetime elision.\n\n Why is this "],"double_comparisons":["Warn","\nChecks for double comparisons that could be simplified to a single expression.\n\n\n Why is this bad?\n"],"single_char_add_str":["Warn","\nWarns when using push_str/insert_str with a single-character string literal\nwhere push/insert with "],"single_char_pattern":[C[0],"\nChecks for string methods that receive a single-character\nstr as an argument, e.g., _.split(\"x\").\n\n"],"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"],"iter_out_of_bounds":["Warn","\nLooks for iterator combinator calls such as .take(x) or .skip(x)\nwhere x is greater than the amount"],"implicit_saturating_add":["Warn","\nChecks for implicit saturating addition.\n\n Why is this bad?\nThe built-in function is more readable "],"integer_division_remainder_used":[C[0],"\nChecks for the usage of division (/) and remainder (%) operations\nwhen performed on any integer typ"],"extend_from_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::extend, wh"],"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 "],"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"],"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_raw_strings":[C[0],"\nChecks for raw string literals where a string literal can be used instead.\n\n Why restrict this?\nFor"],"question_mark":["Warn","\nChecks for expressions that could be replaced by the question mark operator.\n\n Why is this bad?\nQue"],"std_instead_of_alloc":[C[0],"\nFinds items imported through std when available through alloc.\n\n Why restrict this?\nCrates which ha"],"suspicious_else_formatting":["Warn","\nChecks for formatting of else. It lints if the else\nis followed immediately by a newline or the els"],"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_borrow":["Warn","\nChecks for address of operations (&) that are going to\nbe dereferenced immediately by the compiler."],"mut_from_ref":["Deny","\nThis lint checks for functions that take immutable references and return\nmutable ones. This will no"],"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"],"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"],"zero_prefixed_literal":["Warn","\nWarns if an integral constant literal starts with 0.\n\n Why is this bad?\nIn some languages (includin"],"or_fun_call":[C[0],"\nChecks for calls to .or(foo(..)), .unwrap_or(foo(..)),\n.or_insert(foo(..)) etc., and suggests to us"],"recursive_format_impl":["Deny","\nChecks for format trait implementations (e.g. Display) with a recursive call to itself\nwhich uses s"],"pub_use":[C[0],"\nRestricts the usage of pub use ...\n\n Why restrict this?\nA project may wish to limit pub use instanc"],"unsafe_vector_initialization":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint used to suggest replacing le"],"multiple_inherent_impl":[C[0],"\nChecks for multiple inherent implementations of a struct\n\n Why restrict this?\nSplitting the impleme"],"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"],"dbg_macro":[C[0],"\nChecks for usage of the [dbg!](https://doc.rust-lang.org/std/macro.dbg.html) macro.\n\n Why restrict "],"needless_borrowed_reference":["Warn","\nChecks for bindings that needlessly destructure a reference and borrow the inner\nvalue with &ref.\n\n"],"absolute_paths":[C[0],"\nChecks for usage of items through absolute paths, like std::env::current_dir.\n\n Why restrict this?\n"],"redundant_locals":["Deny","\nChecks for redundant redefinitions of local bindings.\n\n Why is this bad?\nRedundant redefinitions of"],"unnecessary_safety_comment":[C[0],"\nChecks for // SAFETY: comments on safe code.\n\n Why restrict this?\nSafe code has no safety requirem"],"checked_conversions":[C[0],"\nChecks for explicit bounds checking when casting.\n\n Why is this bad?\nReduces the readability of sta"],"needless_return_with_question_mark":["Warn","\nChecks for return statements on Err paired with the ? operator.\n\n Why is this bad?\nThe return is un"],"field_reassign_with_default":["Warn","\nChecks for immediate reassignment of fields initialized\nwith Default::default().\n\n Why is this bad?"],"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"],"infallible_destructuring_match":["Warn","\nChecks for matches being used to destructure a single-variant enum\nor tuple struct where a let will"],"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"],"rest_pat_in_fully_bound_structs":[C[0],"\nChecks for unnecessary '..' pattern binding on struct when all fields are explicitly matched.\n\n Why"],"suspicious_open_options":["Warn","\nChecks for the suspicious use of OpenOptions::create()\nwithout an explicit OpenOptions::truncate()."],"too_many_arguments":["Warn","\nChecks for functions with too many parameters.\n\n Why is this bad?\nFunctions with lots of parameters"],"transmute_null_to_fn":["Deny","\nChecks for null function pointer creation through transmute.\n\n Why is this bad?\nCreating a null fun"],"unstable_as_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::as_slice, "],"match_ref_pats":["Warn","\nChecks for matches where all arms match a reference,\nsuggesting to remove the reference and deref t"],"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 r"],"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"],"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 "],"iter_overeager_cloned":["Warn","\nChecks for usage of _.cloned().<func>() where call to .cloned() can be postponed.\n\n Why is this bad"],"unit_arg":["Warn","\nChecks for passing a unit value as an argument to a function without using a\nunit literal (()).\n\n W"],"wrong_transmute":["Deny","\nChecks for transmutes that can't ever be correct on any\narchitecture.\n\n Why is this bad?\nIt's basic"],"string_lit_chars_any":[C[0],"\nChecks for <string_lit>.chars().any(|i| i == c).\n\n Why is this bad?\nIt's significantly slower than "],"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"],"option_as_ref_cloned":[C[0],"\nChecks for usage of .as_ref().cloned() and .as_mut().cloned() on Options\n\n Why is this bad?\nThis ca"],"wildcard_dependencies":[C[0],"\nChecks for wildcard dependencies in the Cargo.toml.\n\n Why is this bad?\n[As the edition guide says]("],"unnecessary_clippy_cfg":["Warn","\nChecks for [cfg_attr(clippy, allow(clippy::lint))]\nand suggests to replace it with [allow(clippy::l"],"unnecessary_filter_map":["Warn","\nChecks for filter_map calls that could be replaced by filter or map.\nMore specifically it checks if"],"nonsensical_open_options":["Deny","\nChecks for duplicate open options as well as combinations\nthat make no sense.\n\n Why is this bad?\nIn"],"collapsible_if":["Warn","\nChecks for nested if statements which can be collapsed\nby &&-combining their conditions.\n\n Why is t"],"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"],"create_dir":[C[0],"\nChecks usage of std::fs::create_dir and suggest using std::fs::create_dir_all instead.\n\n Why restri"],"inconsistent_digit_grouping":["Warn","\nWarns if an integral or floating-point constant is\ngrouped inconsistently with underscores.\n\n Why i"],"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"],"neg_cmp_op_on_partial_ord":["Warn","\nChecks for the usage of negated comparison operators on types which only implement\nPartialOrd (e.g."],"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"],"ptr_as_ptr":[C[0],"\nChecks for as casts between raw pointers without changing its mutability,\nnamely *const T to *const"],"wildcard_in_or_patterns":["Warn","\nChecks for wildcard pattern used with others patterns in same match arm.\n\n Why is this bad?\nWildcar"],"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"],"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"],"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"],"option_env_unwrap":["Deny","\nChecks for usage of option_env!(...).unwrap() and\nsuggests usage of the env! macro.\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 "],"assigning_clones":[C[0],"\nChecks for code like foo = bar.clone();\n\n Why is this bad?\nCustom Clone::clone_from() or ToOwned::c"],"blanket_clippy_restriction_lints":["Warn","\nChecks for warn/deny/forbid attributes targeting the whole clippy::restriction category.\n\n Why is t"],"excessive_precision":["Warn","\nChecks for float literals with a precision greater\nthan that supported by the underlying type.\n\n Wh"],"no_effect":["Warn","\nChecks for statements which have no effect.\n\n Why is this bad?\nUnlike dead code, these statements a"],"unnecessary_cast":["Warn","\nChecks for casts to the same type, casts of int literals to integer types, casts of float\nliterals "],"needless_continue":[C[0],"\nThe lint checks for if-statements appearing in loops\nthat contain a continue statement in either th"],"single_match":["Warn","\nChecks for matches with a single arm where an if let\nwill usually suffice.\n\nThis intentionally does"],"unit_cmp":["Deny","\nChecks for comparisons to unit. This includes all binary\ncomparisons (like == and <) and asserts.\n\n"],"float_arithmetic":[C[0],"\nChecks for float arithmetic.\n\n Why restrict this?\nFor some embedded systems or kernel development, "],"missing_trait_methods":[C[0],"\nChecks if a provided method is used implicitly by a trait\nimplementation.\n\n Why restrict this?\nTo e"],"empty_structs_with_brackets":[C[0],"\nFinds structs without fields (a so-called \"empty struct\") that are declared with brackets.\n\n Why re"],"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"],"let_with_type_underscore":["Warn","\nDetects when a variable is declared with an explicit type of _.\n Why is this bad?\nIt adds noise, : "],"format_in_format_args":["Warn","\nDetects format! within the arguments of another macro that does\nformatting such as format! itself, "],"box_collection":["Warn","\nChecks for usage of Box<T> where T is a collection such as Vec anywhere in the code.\nCheck the [Box"],"fn_to_numeric_cast_any":[C[0],"\nChecks for casts of a function pointer to any integer type.\n\n Why restrict this?\nCasting a function"],"partial_pub_fields":[C[0],"\nChecks whether some but not all fields of a struct are public.\n\nEither make all fields of a type pu"],"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"],"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 "],"needless_parens_on_range_literals":["Warn","\nThe lint checks for parenthesis on literals in range statements that are\nsuperfluous.\n\n Why is this"],"manual_str_repeat":["Warn","\nChecks for manual implementations of str::repeat\n\n Why is this bad?\nThese are both harder to read, "],"filter_map_next":[C[0],"\nChecks for usage of _.filter_map(_).next().\n\n Why is this bad?\nReadability, this can be written mor"],"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"],"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 restrict"],"print_literal":["Warn","\nThis lint warns about the use of literals as print!/println! args.\n\n Why is this bad?\nUsing literal"],"toplevel_ref_arg":["Warn","\nChecks for function arguments and let bindings denoted as\nref.\n\n Why is this bad?\nThe ref declarati"],"unreadable_literal":[C[0],"\nWarns if a long integral or floating-point constant does\nnot contain underscores.\n\n Why is this bad"],"duplicated_attributes":["Warn","\nChecks for attributes that appear two or more times.\n\n Why is this bad?\nRepeating an attribute on t"],"replace_consts":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nAssociated-constants are now preferred"],"imprecise_flops":[C[0],"\nLooks for floating-point expressions that\ncan be expressed using built-in methods to improve accura"],"strlen_on_c_strings":["Warn","\nChecks for usage of libc::strlen on a CString or CStr value,\nand suggest calling as_bytes().len() o"],"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"],"unnecessary_mut_passed":["Warn","\nDetects passing a mutable reference to a function that only\nrequires an immutable reference.\n\n Why "],"path_ends_with_ext":["Warn","\nLooks for calls to Path::ends_with calls where the argument looks like a file extension.\n\nBy defaul"],"manual_swap":["Warn","\nChecks for manual swapping.\n\nNote that the lint will not be emitted in const blocks, as the suggest"],"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 "],"significant_drop_tightening":[C[0],"\n\nSearches for elements marked with [clippy::has_significant_drop] that could be early\ndropped but a"],"cast_slice_different_sizes":["Deny","\nChecks for as casts between raw pointers to slices with differently sized elements.\n\n Why is this b"],"incompatible_msrv":["Warn","\n\nThis lint checks that no function newer than the defined MSRV (minimum\nsupported rust version) is "],"undocumented_unsafe_blocks":[C[0],"\nChecks for unsafe blocks and impls without a // SAFETY: comment\nexplaining why the unsafe operatio"],"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'"],"index_refutable_slice":[C[0],"\nThe lint checks for slice bindings in patterns that are only used to\naccess individual slice values"],"disallowed_macros":["Warn","\nDenies the configured macros in clippy.toml\n\nNote: Even though this lint is warn-by-default, it wil"],"module_inception":["Warn","\nChecks for modules that have the same name as their\nparent module\n\n Why is this bad?\nA typical begi"],"uninhabited_references":[C[0],"\nIt detects references to uninhabited types, such as ! and\nwarns when those are either dereferenced "],"transmuting_null":["Deny","\nChecks for transmute calls which would receive a null pointer.\n\n Why is this bad?\nTransmuting a nul"],"cmp_null":["Warn","\nThis lint checks for equality comparisons with ptr::null\n\n Why is this bad?\nIt's easier and more re"],"four_forward_slashes":["Warn","\nChecks for outer doc comments written with 4 forward slashes (////).\n\n Why is this bad?\nThis is (pr"],"repeat_once":["Warn","\nChecks for usage of .repeat(1) and suggest the following method for each types.\n- .to_string() for "],"identity_op":["Warn","\nChecks for identity operations, e.g., x + 0.\n\n Why is this bad?\nThis code can be removed without ch"],"implicit_clone":[C[0],"\nChecks for the usage of _.to_owned(), vec.to_vec(), or similar when calling _.clone() would be clea"],"mismatched_target_os":["None",C[3]],"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"],"result_filter_map":["Warn","\nChecks for iterators of Results using .filter(Result::is_ok).map(Result::unwrap) that may\nbe replac"],"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"],"string_add":[C[0],"\nChecks for all instances of x + _ where x is of type\nString, but only if [string_add_assign](string"],"trailing_empty_array":[C[0],"\nDisplays a warning when a struct with a trailing zero-sized array is declared without a repr attrib"],"unreachable":[C[0],"\nChecks for usage of unreachable!.\n\n Why restrict this?\nThis macro, or panics in general, may be unw"],"useless_attribute":["Deny","\nChecks for extern crate and use items annotated with\nlint attributes.\n\nThis lint permits lint attri"],"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"],"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"],"unstable_as_mut_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::as_mut_sli"],"bool_assert_comparison":["Warn","\nThis lint warns about boolean comparisons in assert-like macros.\n\n Why is this bad?\nIt is shorter t"],"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"],"if_let_redundant_pattern_matching":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThe original rule will only lint for i"],"infinite_iter":["Deny","\nChecks for iteration that is guaranteed to be infinite.\n\n Why is this bad?\nWhile there may be place"],"match_result_ok":["Warn","\nChecks for unnecessary ok() in while let.\n\n Why is this bad?\nCalling ok() in while let is unnecessa"],"manual_range_patterns":["Warn","\nLooks for combined OR patterns that are all contained in a specific range,\ne.g. 6 | 4 | 5 | 9 | 7 |"],"partialeq_ne_impl":["Warn","\nChecks for manual re-implementations of PartialEq::ne.\n\n Why is this bad?\nPartialEq::ne is required"],"string_to_string":[C[0],"\nThis lint checks for .to_string() method calls on values of type String.\n\n Why restrict this?\nThe t"],"init_numbered_fields":["Warn","\nChecks for tuple structs initialized with field syntax.\nIt will however not lint if a base initiali"],"disallowed_script_idents":[C[0],"\nChecks for usage of unicode scripts other than those explicitly allowed\nby the lint config.\n\nThis l"],"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"],"empty_drop":[C[0],"\nChecks for empty Drop implementations.\n\n Why restrict this?\nEmpty Drop implementations have no effe"],"deprecated_clippy_cfg_attr":["Warn","\nChecks for [cfg_attr(feature = \"cargo-clippy\", ...)] and for\n[cfg(feature = \"cargo-clippy\")] and su"],"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"],"iter_over_hash_type":[C[0],"\nThis is a restriction lint which prevents the use of hash types (i.e., HashSet and HashMap) in for "],"inline_asm_x86_att_syntax":[C[0],"\nChecks for usage of AT&T x86 assembly syntax.\n\n Why restrict this?\nTo enforce consistent use of Int"],"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 "],"iter_without_into_iter":[C[0],"\nLooks for iter and iter_mut methods without an associated IntoIterator for (&|&mut) Type implementa"],"exit":[C[0],"\nDetects calls to the exit() function which terminates the program.\n\n Why restrict this?\nexit() imme"],"partialeq_to_none":["Warn","\n\nChecks for binary comparisons to a literal Option::None.\n\n Why is this bad?\n\nA programmer checking"],"mut_range_bound":["Warn","\nChecks for loops with a range bound that is a mutable variable.\n\n Why is this bad?\nOne might think "],"ptr_cast_constness":[C[0],"\nChecks for as casts between raw pointers which change its constness, namely *const T to\n*mut T and "],"empty_loop":["Warn","\nChecks for empty loop expressions.\n\n Why is this bad?\nThese busy loops burn CPU cycles without doin"],"let_underscore_future":["Warn","\nChecks for let _ = <expr> where the resulting type of expr implements Future\n\n Why is this bad?\nFut"],"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 "],"needless_borrows_for_generic_args":["Warn","\nChecks for borrow operations (&) that are used as a generic argument to a\nfunction when the borrowe"],"collapsible_match":["Warn","\nFinds nested match or if let expressions where the patterns may be \"collapsed\" together\nwithout add"],"manual_rotate":["Warn","\n\nIt detects manual bit rotations that could be rewritten using standard\nfunctions rotate_left or ro"],"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"],"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"],"should_implement_trait":["Warn","\nChecks for methods that should live in a trait\nimplementation of a std trait (see [llogiq's blog\npo"],"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"],"suspicious_command_arg_space":["Warn","\n\nChecks for Command::arg() invocations that look like they\nshould be multiple arguments instead, su"],"suspicious_op_assign_impl":["Warn","\nLints for suspicious operations in impls of OpAssign, e.g.\nsubtracting elements in an AddAssign imp"],"possible_missing_comma":["Deny","\nChecks for possible missing comma in an array. It lints if\nan array element is a binary operator ex"],"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 "],"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"],"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 "],"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"],"mut_mut":[C[0],"\nChecks for instances of mut mut references.\n\n Why is this bad?\nMultiple muts don't add anything mea"],"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"],"new_without_default":["Warn","\nChecks for public types with a pub fn new() -> Self method and no\nimplementation of\n[Default](https"],"collection_is_never_read":[C[0],"\nChecks for collections that are never queried.\n\n Why is this bad?\nPutting effort into constructing "],"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"],"uninit_assumed_init":["Deny","\nChecks for MaybeUninit::uninit().assume_init().\n\n Why is this bad?\nFor most types, this is undefine"],"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"],"needless_collect":[C[0],"\nChecks for functions collecting an iterator when collect\nis not needed.\n\n Why is this bad?\ncollect "],"just_underscores_and_digits":["Warn","\nChecks if you have variables whose name consists of just\nunderscores and digits.\n\n Why is this bad?"],"cast_ptr_alignment":[C[0],"\nChecks for casts, using as or pointer::cast,\nfrom a less-strictly-aligned pointer to a more-strictl"],"nonminimal_bool":["Warn","\nChecks for boolean expressions that can be written more\nconcisely.\n\n Why is this bad?\nReadability o"],"unseparated_literal_suffix":[C[0],"\nWarns if literal suffixes are not separated by an\nunderscore.\nTo enforce unseparated literal suffix"],"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"],"deref_by_slicing":[C[0],"\nChecks for slicing expressions which are equivalent to dereferencing the\nvalue.\n\n Why restrict this"],"let_underscore_lock":["Deny","\nChecks for let _ = sync_lock. This supports mutex and rwlock in\nparking_lot. For std locks see the "],"missing_docs_in_private_items":[C[0],"\nWarns if there is missing documentation for any private documentable item.\n\n Why restrict this?\nDoc"],"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"],"multiple_unsafe_ops_per_block":[C[0],"\nChecks for unsafe blocks that contain more than one unsafe operation.\n\n Why restrict this?\nCombined"],"default_union_representation":[C[0],"\nDisplays a warning when a union is declared with the default representation (without a [repr(C)] at"],"duration_subsec":["Warn","\nChecks for calculation of subsecond microseconds or milliseconds\nfrom other Duration methods.\n\n Why"],"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 restrict t"],"let_underscore_untyped":[C[0],"\nChecks for let _ = <expr> without a type annotation, and suggests to either provide one,\nor remove "],"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_lazy_evaluations":["Warn","\nAs the counterpart to or_fun_call, this lint looks for unnecessary\nlazily evaluated closures on Opt"],"modulo_arithmetic":[C[0],"\nChecks for modulo arithmetic.\n\n Why restrict this?\nThe results of modulo (%) operation might differ"],"bad_bit_mask":["Deny","\nChecks for incompatible bit masks in comparisons.\n\nThe formula for detecting if an expression of th"],"const_is_empty":["Warn","\nIt identifies calls to .is_empty() on constant values.\n\n Why is this bad?\nString literals and const"],"eq_op":["Deny","\nChecks for equal operands to comparison, logical and\nbitwise, difference and division binary operat"],"test_attr_in_doctest":["Warn","\nChecks for [test] in doctests unless they are marked with\neither ignore, no_run or compile_fail.\n\n "],"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"],"duplicate_mod":["Warn","\nChecks for files that are included as modules multiple times.\n\n Why is this bad?\nLoading a file as "],"error_impl_error":[C[0],"\nChecks for types named Error that implement Error.\n\n Why restrict this?\nIt can become confusing whe"],"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"],"cast_enum_truncation":["Warn","\nChecks for casts from an enum type to an integral type which will definitely truncate the\nvalue.\n\n "],"manual_unwrap_or_default":["Warn","\nChecks if a match or if let expression can be simplified using\n.unwrap_or_default().\n\n Why is this "],"case_sensitive_file_extension_comparisons":[C[0],"\nChecks for calls to ends_with with possible file extensions\nand suggests to use a case-insensitive "],"declare_interior_mutable_const":["Warn","\nChecks for declaration of const items which is interior\nmutable (e.g., contains a Cell, Mutex, Atom"],"unneeded_wildcard_pattern":["Warn","\nChecks for tuple patterns with a wildcard\npattern (_) is next to a rest pattern (..).\n\n_NOTE_: Whil"],"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"],"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_fold":["Warn","\nChecks for usage of fold when a more succinct alternative exists.\nSpecifically, this checks for fol"],"linkedlist":[C[0],"\nChecks for usage of any LinkedList, suggesting to use a\nVec or a VecDeque (formerly called RingBuf)"],"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"],"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"],"lossy_float_literal":[C[0],"\nChecks for whole number float literals that\ncannot be represented as the underlying type without lo"],"derive_ord_xor_partial_ord":["Deny","\nLints against manual PartialOrd and Ord implementations for types with a derived Ord\nor PartialOrd "],"min_ident_chars":[C[0],"\nChecks for identifiers which consist of a single character (or fewer than the configured threshold)"],"missing_safety_doc":["Warn","\nChecks for the doc comments of publicly visible\nunsafe functions and warns if there is no Safety s"],"string_slice":[C[0],"\nChecks for slice operations on strings\n\n Why restrict this?\nUTF-8 characters span multiple bytes, a"],"unusual_byte_groupings":["Warn","\nWarns if hexadecimal or binary literals are not grouped\nby nibble or byte.\n\n Why is this bad?\nNegat"],"no_effect_underscore_binding":[C[0],"\nChecks for binding to underscore prefixed variable without side-effects.\n\n Why is this bad?\nUnlike "],"approx_constant":["Deny","\nChecks for floating point literals that approximate\nconstants which are defined in\n[std::f32::const"],"needless_late_init":["Warn","\nChecks for late initializations that can be replaced by a let statement\nwith an initializer.\n\n Why "],"needless_option_as_deref":["Warn","\nChecks for no-op uses of Option::{as_deref, as_deref_mut},\nfor example, Option<&T>::as_deref() retu"]};export default lintsIndex; \ No newline at end of file diff --git a/rust/src/tasks/lints.rs b/rust/src/tasks/lints.rs index 8f0e110..d27edaa 100644 --- a/rust/src/tasks/lints.rs +++ b/rust/src/tasks/lints.rs @@ -10,7 +10,7 @@ use tokio::runtime::Runtime; use crate::minify::Minifier; use crate::tasks::Task; -const LINT_URL: &str = "https://rust-lang.github.io/rust-clippy/master/lints.json"; +const LINT_URL: &str = "https://rust-lang.github.io/rust-clippy/stable/lints.json"; const LINTS_INDEX_PATH: &str = "../extension/index/lints.js"; /// Lint task