Lint Configuration - Clippy Documentation

## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# Lint Configuration Options

The following list shows each configuration option, along with a description, its default value, an example and lints affected.

## `absolute-paths-allowed-crates`

Which crates to allow absolute paths from

Default Value: `[]`

Affected lints:

- `absolute_paths`

## `absolute-paths-max-segments`

The maximum number of segments a path can have before being linted, anything above this will be linted.

Default Value: `2`

Affected lints:

- `absolute_paths`

## `accept-comment-above-attributes`

Whether to accept a safety comment to be placed above the attributes for the `unsafe` block

Default Value: `true`

Affected lints:

- `undocumented_unsafe_blocks`

## `accept-comment-above-statement`

Whether to accept a safety comment to be placed above the statement containing the `unsafe` block

Default Value: `true`

Affected lints:

- `undocumented_unsafe_blocks`

## `allow-comparison-to-zero`

Don’t lint when comparing the result of a modulo operation to zero.

Default Value: `true`

Affected lints:

- `modulo_arithmetic`

## `allow-dbg-in-tests`

Whether `dbg!` should be allowed in test functions or `#[cfg(test)]`

Default Value: `false`

Affected lints:

- `dbg_macro`

## `allow-exact-repetitions`

Whether an item should be allowed to have the same name as its containing module

Default Value: `true`

Affected lints:

- `module_name_repetitions`

## `allow-expect-in-consts`

Whether `expect` should be allowed in code always evaluated at compile time

Default Value: `true`

Affected lints:

- `expect_used`

## `allow-expect-in-tests`

Whether `expect` should be allowed in test functions or `#[cfg(test)]`

Default Value: `false`

Affected lints:

- `expect_used`

## `allow-indexing-slicing-in-tests`

Whether `indexing_slicing` should be allowed in test functions or `#[cfg(test)]`

Default Value: `false`

Affected lints:

- `indexing_slicing`

## `allow-large-stack-frames-in-tests`

Whether functions inside `#[cfg(test)]` modules or test functions should be checked.

Default Value: `true`

Affected lints:

- `large_stack_frames`

## `allow-mixed-uninlined-format-args`

Whether to allow mixed uninlined format args, e.g. `format!("{} {}", a, foo.bar)`

Default Value: `true`

Affected lints:

- `uninlined_format_args`

## `allow-one-hash-in-raw-strings`

Whether to allow `r#""#` when `r""` can be used

Default Value: `false`

Affected lints:

- `needless_raw_string_hashes`

## `allow-panic-in-tests`

Whether `panic` should be allowed in test functions or `#[cfg(test)]`

Default Value: `false`

Affected lints:

- `panic`

## `allow-print-in-tests`

Whether print macros (ex. `println!`) should be allowed in test functions or `#[cfg(test)]`

Default Value: `false`

Affected lints:

- `print_stderr`
- `print_stdout`

## `allow-private-module-inception`

Whether to allow module inception if it’s not public.

Default Value: `false`

Affected lints:

- `module_inception`

## `allow-renamed-params-for`

List of trait paths to ignore when checking renamed function parameters.

#### Example

    allow-renamed-params-for = [ "std::convert::From" ]

#### Noteworthy

- By default, the following traits are ignored: `From`, `TryFrom`, `FromStr`
- `".."` can be used as part of the list to indicate that the configured values should be appended to the default configuration of Clippy. By default, any configuration will replace the default value.

Default Value: `["core::convert::From", "core::convert::TryFrom", "core::str::FromStr"]`

Affected lints:

- `renamed_function_params`

## `allow-unwrap-in-consts`

Whether `unwrap` should be allowed in code always evaluated at compile time

Default Value: `true`

Affected lints:

- `unwrap_used`

## `allow-unwrap-in-tests`

Whether `unwrap` should be allowed in test functions or `#[cfg(test)]`

Default Value: `false`

Affected lints:

- `unwrap_used`

## `allow-unwrap-types`

List of types to allow `unwrap()` and `expect()` on.

#### Example

    allow-unwrap-types = [ "std::sync::LockResult" ]

Default Value: `[]`

Affected lints:

- `expect_used`
- `unwrap_used`

## `allow-useless-vec-in-tests`

Whether `useless_vec` should ignore test functions or `#[cfg(test)]`

Default Value: `false`

Affected lints:

- `useless_vec`

## `allowed-dotfiles`

Additional dotfiles (files or directories starting with a dot) to allow

Default Value: `[]`

Affected lints:

- `path_ends_with_ext`

## `allowed-duplicate-crates`

A list of crate names to allow duplicates of

Default Value: `[]`

Affected lints:

- `multiple_crate_versions`

## `allowed-idents-below-min-chars`

Allowed names below the minimum allowed characters. The value `".."` can be used as part of the list to indicate that the configured values should be appended to the default configuration of Clippy. By default, any configuration will replace the default value.

Default Value: `["i", "j", "x", "y", "z", "w", "n"]`

Affected lints:

- `min_ident_chars`

## `allowed-prefixes`

List of prefixes to allow when determining whether an item’s name ends with the module’s name. If the rest of an item’s name is an allowed prefix (e.g. item `ToFoo` or `to_foo` in module `foo`), then don’t emit a warning.

#### Example

    allowed-prefixes = [ "to", "from" ]

#### Noteworthy

- By default, the following prefixes are allowed: `to`, `as`, `into`, `from`, `try_into` and `try_from`
- PascalCase variant is included automatically for each snake_case variant (e.g. if `try_into` is included, `TryInto` will also be included)
- Use `".."` as part of the list to indicate that the configured values should be appended to the default configuration of Clippy. By default, any configuration will replace the default value

Default Value: `["to", "as", "into", "from", "try_into", "try_from"]`

Affected lints:

- `module_name_repetitions`

## `allowed-scripts`

The list of unicode scripts allowed to be used in the scope.

Default Value: `["Latin"]`

Affected lints:

- `disallowed_script_idents`

## `allowed-wildcard-imports`

List of path segments allowed to have wildcard imports.

#### Example

    allowed-wildcard-imports = [ "utils", "common" ]

#### Noteworthy

1. This configuration has no effects if used with `warn_on_all_wildcard_imports = true`.
2. Paths with any segment that containing the word ‘prelude’ are already allowed by default.

Default Value: `[]`

Affected lints:

- `wildcard_imports`

## `arithmetic-side-effects-allowed`

Suppress checking of the passed type names in all types of operations.

If a specific operation is desired, consider using `arithmetic_side_effects_allowed_binary` or `arithmetic_side_effects_allowed_unary` instead.

#### Example

    arithmetic-side-effects-allowed = ["SomeType", "AnotherType"]

#### Noteworthy

A type, say `SomeType`, listed in this configuration has the same behavior of `["SomeType" , "*"], ["*", "SomeType"]` in `arithmetic_side_effects_allowed_binary`.

Default Value: `[]`

Affected lints:

- `arithmetic_side_effects`

## `arithmetic-side-effects-allowed-binary`

Suppress checking of the passed type pair names in binary operations like addition or multiplication.

Supports the “*” wildcard to indicate that a certain type won’t trigger the lint regardless of the involved counterpart. For example, `["SomeType", "*"]` or `["*", "AnotherType"]`.

Pairs are asymmetric, which means that `["SomeType", "AnotherType"]` is not the same as `["AnotherType", "SomeType"]`.

#### Example

    arithmetic-side-effects-allowed-binary = [["SomeType" , "f32"], ["AnotherType", "*"]]

Default Value: `[]`

Affected lints:

- `arithmetic_side_effects`

## `arithmetic-side-effects-allowed-unary`

Suppress checking of the passed type names in unary operations like “negation” (`-`).

#### Example

    arithmetic-side-effects-allowed-unary = ["SomeType", "AnotherType"]

Default Value: `[]`

Affected lints:

- `arithmetic_side_effects`

## `array-size-threshold`

The maximum allowed size for arrays on the stack

Default Value: `16384`

Affected lints:

- `large_const_arrays`
- `large_stack_arrays`

## `avoid-breaking-exported-api`

Suppress lints whenever the suggested change would cause breakage for other crates.

Default Value: `true`

Affected lints:

- `box_collection`
- `enum_variant_names`
- `large_types_passed_by_value`
- `linkedlist`
- `needless_pass_by_ref_mut`
- `option_option`
- `owned_cow`
- `rc_buffer`
- `rc_mutex`
- `redundant_allocation`
- `ref_option`
- `single_call_fn`
- `trivially_copy_pass_by_ref`
- `unnecessary_box_returns`
- `unnecessary_wraps`
- `unused_self`
- `upper_case_acronyms`
- `vec_box`
- `wrong_self_convention`

## `await-holding-invalid-types`

The list of types which may not be held across an await point.

Default Value: `[]`

Affected lints:

- `await_holding_invalid_type`

## `cargo-ignore-publish`

For internal testing only, ignores the current `publish` settings in the Cargo manifest.

Default Value: `false`

Affected lints:

- `cargo_common_metadata`

## `check-incompatible-msrv-in-tests`

Whether to check MSRV compatibility in `#[test]` and `#[cfg(test)]` code.

Default Value: `false`

Affected lints:

- `incompatible_msrv`

## `check-inconsistent-struct-field-initializers`

Whether to suggest reordering constructor fields when initializers are present.

Warnings produced by this configuration aren’t necessarily fixed by just reordering the fields. Even if the suggested code would compile, it can change semantics if the initializer expressions have side effects. The following example from rust-clippy#11846 shows how the suggestion can run into borrow check errors:

    struct MyStruct {
        vector: Vec<u32>,
        length: usize
    }
    fn main() {
        let vector = vec![1,2,3];
        MyStruct { length: vector.len(), vector};
    }

Default Value: `false`

Affected lints:

- `inconsistent_struct_constructor`

## `check-private-items`

Whether to also run the listed lints on private items.

Default Value: `false`

Affected lints:

- `missing_errors_doc`
- `missing_panics_doc`
- `missing_safety_doc`
- `unnecessary_safety_doc`

## `cognitive-complexity-threshold`

The maximum cognitive complexity a function can have

Default Value: `25`

Affected lints:

- `cognitive_complexity`

## `const-literal-digits-threshold`

The minimum digits a const float literal must have to supress the `excessive_precicion` lint

Default Value: `30`

Affected lints:

- `excessive_precision`

## `disallowed-fields`

The list of disallowed fields, written as fully qualified paths.

Fields:

- `path` (required): the fully qualified path to the field that should be disallowed
- `reason` (optional): explanation why this field is disallowed
- `replacement` (optional): suggested alternative method
- `allow-invalid` (optional, `false` by default): when set to `true`, it will ignore this entry if the path doesn’t exist, instead of emitting an error

Default Value: `[]`

Affected lints:

- `disallowed_fields`

## `disallowed-macros`

The list of disallowed macros, written as fully qualified paths.

Fields:

- `path` (required): the fully qualified path to the macro that should be disallowed
- `reason` (optional): explanation why this macro is disallowed
- `replacement` (optional): suggested alternative macro
- `allow-invalid` (optional, `false` by default): when set to `true`, it will ignore this entry if the path doesn’t exist, instead of emitting an error

Default Value: `[]`

Affected lints:

- `disallowed_macros`

## `disallowed-methods`

The list of disallowed methods, written as fully qualified paths.

Fields:

- `path` (required): the fully qualified path to the method that should be disallowed
- `reason` (optional): explanation why this method is disallowed
- `replacement` (optional): suggested alternative method
- `allow-invalid` (optional, `false` by default): when set to `true`, it will ignore this entry if the path doesn’t exist, instead of emitting an error

Default Value: `[]`

Affected lints:

- `disallowed_methods`

## `disallowed-names`

The list of disallowed names to lint about. NB: `bar` is not here since it has legitimate uses. The value `".."` can be used as part of the list to indicate that the configured values should be appended to the default configuration of Clippy. By default, any configuration will replace the default value.

Default Value: `["foo", "baz", "quux"]`

Affected lints:

- `disallowed_names`

## `disallowed-types`

The list of disallowed types, written as fully qualified paths.

Fields:

- `path` (required): the fully qualified path to the type that should be disallowed
- `reason` (optional): explanation why this type is disallowed
- `replacement` (optional): suggested alternative type
- `allow-invalid` (optional, `false` by default): when set to `true`, it will ignore this entry if the path doesn’t exist, instead of emitting an error

Default Value: `[]`

Affected lints:

- `disallowed_types`

## `doc-valid-idents`

The list of words this lint should not consider as identifiers needing ticks. The value `".."` can be used as part of the list to indicate that the configured values should be appended to the default configuration of Clippy. By default, any configuration will replace the default value. For example:

- `doc-valid-idents = ["ClipPy"]` would replace the default list with `["ClipPy"]`.
- `doc-valid-idents = ["ClipPy", ".."]` would append `ClipPy` to the default list.

Default Value: `["KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "MHz", "GHz", "THz", "AccessKit", "CoAP", "CoreFoundation", "CoreGraphics", "CoreText", "DevOps", "Direct2D", "Direct3D", "DirectWrite", "DirectX", "ECMAScript", "GPLv2", "GPLv3", "GitHub", "GitLab", "IPv4", "IPv6", "InfiniBand", "RoCE", "ClojureScript", "CoffeeScript", "JavaScript", "PostScript", "PureScript", "TypeScript", "PowerPC", "PowerShell", "WebAssembly", "NaN", "NaNs", "OAuth", "GraphQL", "OCaml", "OpenAL", "OpenDNS", "OpenGL", "OpenMP", "OpenSSH", "OpenSSL", "OpenStreetMap", "OpenTelemetry", "OpenType", "WebGL", "WebGL2", "WebGPU", "WebRTC", "WebSocket", "WebTransport", "WebP", "OpenExr", "YCbCr", "sRGB", "TensorFlow", "TrueType", "iOS", "macOS", "FreeBSD", "NetBSD", "OpenBSD", "NixOS", "TeX", "LaTeX", "BibTeX", "BibLaTeX", "MinGW", "CamelCase"]`

Affected lints:

- `doc_markdown`

## `enable-raw-pointer-heuristic-for-send`

Whether to apply the raw pointer heuristic to determine if a type is `Send`.

Default Value: `true`

Affected lints:

- `non_send_fields_in_send_ty`

## `enforce-iter-loop-reborrow`

Whether to recommend using implicit into iter for reborrowed values.

#### Example

    let mut vec = vec![1, 2, 3];
    let rmvec = &mut vec;
    for _ in rmvec.iter() {}
    for _ in rmvec.iter_mut() {}

Use instead:

    let mut vec = vec![1, 2, 3];
    let rmvec = &mut vec;
    for _ in &*rmvec {}
    for _ in &mut *rmvec {}

Default Value: `false`

Affected lints:

- `explicit_iter_loop`

## `enforced-import-renames`

The list of imports to always rename, a fully qualified path followed by the rename.

Default Value: `[]`

Affected lints:

- `missing_enforced_import_renames`

## `enum-variant-name-threshold`

The minimum number of enum variants for the lints about variant names to trigger

Default Value: `3`

Affected lints:

- `enum_variant_names`

## `enum-variant-size-threshold`

The maximum size of an enum’s variant to avoid box suggestion

Default Value: `200`

Affected lints:

- `large_enum_variant`

## `excessive-nesting-threshold`

The maximum amount of nesting a block can reside in

Default Value: `0`

Affected lints:

- `excessive_nesting`

## `future-size-threshold`

The maximum byte size a `Future` can have, before it triggers the `clippy::large_futures` lint

Default Value: `16384`

Affected lints:

- `large_futures`

## `ignore-interior-mutability`

A list of paths to types that should be treated as if they do not contain interior mutability

Default Value: `["bytes::Bytes"]`

Affected lints:

- `borrow_interior_mutable_const`
- `declare_interior_mutable_const`
- `ifs_same_cond`
- `mutable_key_type`

## `inherent-impl-lint-scope`

Sets the scope (“crate”, “file”, or “module”) in which duplicate inherent `impl` blocks for the same type are linted.

Default Value: `"crate"`

Affected lints:

- `multiple_inherent_impl`

## `large-error-ignored`

A list of paths to types that should be ignored as overly large `Err`-variants in a `Result` returned from a function

Default Value: `[]`

Affected lints:

- `result_large_err`

## `large-error-threshold`

The maximum size of the `Err`-variant in a `Result` returned from a function

Default Value: `128`

Affected lints:

- `result_large_err`

## `lint-commented-code`

Whether collapsible `if` and `else if` chains are linted if they contain comments inside the parts that would be collapsed.

Default Value: `false`

Affected lints:

- `collapsible_else_if`
- `collapsible_if`

## `literal-representation-threshold`

The lower bound for linting decimal literals

Default Value: `16384`

Affected lints:

- `decimal_literal_representation`

## `matches-for-let-else`

Whether the matches should be considered by the lint, and whether there should be filtering for common types.

Default Value: `"WellKnownTypes"`

Affected lints:

- `manual_let_else`

## `max-fn-params-bools`

The maximum number of bool parameters a function can have

Default Value: `3`

Affected lints:

- `fn_params_excessive_bools`

## `max-include-file-size`

The maximum size of a file included via `include_bytes!()` or `include_str!()`, in bytes

Default Value: `1000000`

Affected lints:

- `large_include_file`

## `max-struct-bools`

The maximum number of bool fields a struct can have

Default Value: `3`

Affected lints:

- `struct_excessive_bools`

## `max-suggested-slice-pattern-length`

When Clippy suggests using a slice pattern, this is the maximum number of elements allowed in the slice pattern that is suggested. If more elements are necessary, the lint is suppressed. For example, `[_, _, _, e, ..]` is a slice pattern with 4 elements.

Default Value: `3`

Affected lints:

- `index_refutable_slice`

## `max-trait-bounds`

The maximum number of bounds a trait can have to be linted

Default Value: `3`

Affected lints:

- `type_repetition_in_bounds`

## `min-ident-chars-threshold`

Minimum chars an ident can have, anything below or equal to this will be linted.

Default Value: `1`

Affected lints:

- `min_ident_chars`

## `missing-docs-allow-unused`

Whether to allow fields starting with an underscore to skip documentation requirements

Default Value: `false`

Affected lints:

- `missing_docs_in_private_items`

## `missing-docs-in-crate-items`

Whether to only check for missing documentation in items visible within the current crate. For example, `pub(crate)` items.

Default Value: `false`

Affected lints:

- `missing_docs_in_private_items`

## `module-item-order-groupings`

The named groupings of different source item kinds within modules.

Default Value: `[["modules", ["extern_crate", "mod", "foreign_mod"]], ["use", ["use"]], ["macros", ["macro"]], ["global_asm", ["global_asm"]], ["UPPER_SNAKE_CASE", ["static", "const"]], ["PascalCase", ["ty_alias", "enum", "struct", "union", "trait", "trait_alias", "impl"]], ["lower_snake_case", ["fn"]]]`

Affected lints:

- `arbitrary_source_item_ordering`

## `module-items-ordered-within-groupings`

Whether the items within module groups should be ordered alphabetically or not.

This option can be configured to “all”, “none”, or a list of specific grouping names that should be checked (e.g. only “enums”).

Default Value: `"none"`

Affected lints:

- `arbitrary_source_item_ordering`

## `msrv`

The minimum rust version that the project supports. Defaults to the `rust-version` field in `Cargo.toml`

Default Value: `current version`

Affected lints:

- `allow_attributes`
- `allow_attributes_without_reason`
- `almost_complete_range`
- `approx_constant`
- `assigning_clones`
- `borrow_as_ptr`
- `cast_abs_to_unsigned`
- `checked_conversions`
- `cloned_instead_of_copied`
- `collapsible_match`
- `collapsible_str_replace`
- `deprecated_cfg_attr`
- `derivable_impls`
- `err_expect`
- `filter_map_next`
- `from_over_into`
- `if_then_some_else_none`
- `index_refutable_slice`
- `inefficient_to_string`
- `io_other_error`
- `iter_kv_map`
- `legacy_numeric_constants`
- `len_zero`
- `lines_filter_map_ok`
- `manual_abs_diff`
- `manual_bits`
- `manual_c_str_literals`
- `manual_clamp`
- `manual_div_ceil`
- `manual_flatten`
- `manual_hash_one`
- `manual_is_ascii_check`
- `manual_is_power_of_two`
- `manual_let_else`
- `manual_midpoint`
- `manual_non_exhaustive`
- `manual_noop_waker`
- `manual_option_as_slice`
- `manual_pattern_char_comparison`
- `manual_range_contains`
- `manual_rem_euclid`
- `manual_repeat_n`
- `manual_retain`
- `manual_slice_fill`
- `manual_slice_size_calculation`
- `manual_split_once`
- `manual_str_repeat`
- `manual_strip`
- `manual_take`
- `manual_try_fold`
- `map_clone`
- `map_unwrap_or`
- `map_with_unused_argument_over_ranges`
- `match_like_matches_macro`
- `mem_replace_option_with_some`
- `mem_replace_with_default`
- `missing_const_for_fn`
- `needless_borrow`
- `non_std_lazy_statics`
- `option_as_ref_deref`
- `or_fun_call`
- `ptr_as_ptr`
- `question_mark`
- `redundant_field_names`
- `redundant_static_lifetimes`
- `repeat_vec_with_capacity`
- `same_item_push`
- `seek_from_current`
- `to_digit_is_some`
- `transmute_ptr_to_ref`
- `tuple_array_conversions`
- `type_repetition_in_bounds`
- `unchecked_time_subtraction`
- `uninlined_format_args`
- `unnecessary_lazy_evaluations`
- `unnecessary_unwrap`
- `unnested_or_patterns`
- `unused_trait_names`
- `use_self`
- `zero_ptr`

## `pass-by-value-size-limit`

The minimum size (in bytes) to consider a type for passing by reference instead of by value.

Default Value: `256`

Affected lints:

- `large_types_passed_by_value`

## `pub-underscore-fields-behavior`

Lint “public” fields in a struct that are prefixed with an underscore based on their exported visibility, or whether they are marked as “pub”.

Default Value: `"PubliclyExported"`

Affected lints:

- `pub_underscore_fields`

## `recursive-self-in-type-definitions`

Whether the type itself in a struct or enum should be replaced with `Self` when encountering recursive types.

Default Value: `true`

Affected lints:

- `use_self`

## `semicolon-inside-block-ignore-singleline`

Whether to lint only if it’s multiline.

Default Value: `false`

Affected lints:

- `semicolon_inside_block`

## `semicolon-outside-block-ignore-multiline`

Whether to lint only if it’s singleline.

Default Value: `false`

Affected lints:

- `semicolon_outside_block`

## `single-char-binding-names-threshold`

The maximum number of single char bindings a scope may have

Default Value: `4`

Affected lints:

- `many_single_char_names`

## `source-item-ordering`

Which kind of elements should be ordered internally, possible values being `enum`, `impl`, `module`, `struct`, `trait`.

Default Value: `["enum", "impl", "module", "struct", "trait"]`

Affected lints:

- `arbitrary_source_item_ordering`

## `stack-size-threshold`

The maximum allowed stack size for functions in bytes

Default Value: `512000`

Affected lints:

- `large_stack_frames`

## `standard-macro-braces`

Enforce the named macros always use the braces specified.

A `MacroMatcher` can be added like so `{ name = "macro_name", brace = "(" }`. If the macro could be used with a full path two `MacroMatcher`s have to be added one with the full path `crate_name::macro_name` and one with just the macro name.

Default Value: `[]`

Affected lints:

- `nonstandard_macro_braces`

## `struct-field-name-threshold`

The minimum number of struct fields for the lints about field names to trigger

Default Value: `3`

Affected lints:

- `struct_field_names`

## `suppress-restriction-lint-in-const`

Whether to suppress a restriction lint in constant code. In same cases the restructured operation might not be unavoidable, as the suggested counterparts are unavailable in constant code. This configuration will cause restriction lints to trigger even if no suggestion can be made.

Default Value: `false`

Affected lints:

- `indexing_slicing`

## `too-large-for-stack`

The maximum size of objects (in bytes) that will be linted. Larger objects are ok on the heap

Default Value: `200`

Affected lints:

- `boxed_local`
- `useless_vec`

## `too-many-arguments-threshold`

The maximum number of argument a function or method can have

Default Value: `7`

Affected lints:

- `too_many_arguments`

## `too-many-lines-threshold`

The maximum number of lines a function or method can have

Default Value: `100`

Affected lints:

- `too_many_lines`

## `trait-assoc-item-kinds-order`

The order of associated items in traits.

Default Value: `["const", "type", "fn"]`

Affected lints:

- `arbitrary_source_item_ordering`

## `trivial-copy-size-limit`

The maximum size (in bytes) to consider a `Copy` type for passing by value instead of by reference.

Default Value: `target_pointer_width`

Affected lints:

- `trivially_copy_pass_by_ref`

## `type-complexity-threshold`

The maximum complexity a type can have

Default Value: `250`

Affected lints:

- `type_complexity`

## `unnecessary-box-size`

The byte size a `T` in `Box<T>` can have, below which it triggers the `clippy::unnecessary_box` lint

Default Value: `128`

Affected lints:

- `unnecessary_box_returns`

## `unreadable-literal-lint-fractions`

Should the fraction of a decimal be linted to include separators.

Default Value: `true`

Affected lints:

- `unreadable_literal`

## `upper-case-acronyms-aggressive`

Enables verbose mode. Triggers if there is more than one uppercase char next to each other

Default Value: `false`

Affected lints:

- `upper_case_acronyms`

## `vec-box-size-threshold`

The size of the boxed type in bytes, where boxing in a `Vec` is allowed

Default Value: `4096`

Affected lints:

- `vec_box`

## `verbose-bit-mask-threshold`

The maximum allowed size of a bit mask before suggesting to use ‘trailing_zeros’

Default Value: `1`

Affected lints:

- `verbose_bit_mask`

## `warn-on-all-wildcard-imports`

Whether to emit warnings on all wildcard imports, including those from `prelude`, from `super` in tests, or for `pub use` reexports.

Default Value: `false`

Affected lints:

- `wildcard_imports`

## `warn-unsafe-macro-metavars-in-private-macros`

Whether to also emit warnings for unsafe blocks with metavariable expansions in private macros.

Default Value: `false`

Affected lints:

- `macro_metavars_in_unsafe`