2022-08-10 02:42:10 -05:00
lint_array_into_iter =
2022-06-27 07:35:31 -05:00
this method call resolves to `<&{$target} as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to <{$target} as IntoIterator>::into_iter in Rust 2021
2022-08-10 02:42:10 -05:00
.use_iter_suggestion = use `.iter()` instead of `.into_iter()` to avoid ambiguity
.remove_into_iter_suggestion = or remove `.into_iter()` to iterate by value
.use_explicit_into_iter_suggestion =
2022-06-27 07:35:31 -05:00
or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value
2022-06-27 08:08:02 -05:00
lint_atomic_ordering_fence = memory fences cannot have `Relaxed` ordering
.help = consider using ordering modes `Acquire`, `Release`, `AcqRel` or `SeqCst`
lint_atomic_ordering_invalid = `{$method}`'s failure ordering may not be `Release` or `AcqRel`, since a failed `{$method}` does not result in a write
.label = invalid failure ordering
.help = consider using `Acquire` or `Relaxed` failure ordering instead
2022-06-27 08:15:31 -05:00
lint_atomic_ordering_load = atomic loads cannot have `Release` or `AcqRel` ordering
.help = consider using ordering modes `Acquire`, `SeqCst` or `Relaxed`
2022-06-27 08:40:55 -05:00
2022-11-09 18:34:49 -06:00
lint_atomic_ordering_store = atomic stores cannot have `Acquire` or `AcqRel` ordering
.help = consider using ordering modes `Release`, `SeqCst` or `Relaxed`
2023-02-16 13:04:59 -06:00
lint_bad_attribute_argument = bad attribute argument
2022-10-07 05:14:56 -05:00
lint_bad_opt_access = {$msg}
lint_builtin_allow_internal_unsafe =
`allow_internal_unsafe` allows defining macros using unsafe without triggering the `unsafe_code` lint at their call site
lint_builtin_anonymous_params = anonymous parameters are deprecated and will be removed in the next edition
.suggestion = try naming the parameter or explicitly ignoring it
lint_builtin_asm_labels = avoid using named labels in inline assembly
2022-10-05 07:23:00 -05:00
lint_builtin_box_pointers = type uses owned (Box type) pointers: {$ty}
2022-11-10 18:32:30 -06:00
lint_builtin_clashing_extern_diff_name = `{$this}` redeclares `{$orig}` with a different signature
.previous_decl_label = `{$orig}` previously declared here
.mismatch_label = this signature doesn't match the previous declaration
2022-10-06 19:28:51 -05:00
2023-04-29 10:47:23 -05:00
lint_builtin_clashing_extern_same_name = `{$this}` redeclared with a different signature
.previous_decl_label = `{$orig}` previously declared here
.mismatch_label = this signature doesn't match the previous declaration
lint_builtin_const_no_mangle = const items should never be `#[no_mangle]`
.suggestion = try a static value
2023-04-28 12:17:46 -05:00
2022-10-06 19:28:51 -05:00
lint_builtin_decl_unsafe_fn = declaration of an `unsafe` function
lint_builtin_decl_unsafe_method = declaration of an `unsafe` method
lint_builtin_deprecated_attr_default_suggestion = remove this attribute
lint_builtin_deprecated_attr_link = use of deprecated attribute `{$name}`: {$reason}. See {$link}
.msg_suggestion = {$msg}
.default_suggestion = remove this attribute
lint_builtin_deprecated_attr_used = use of deprecated attribute `{$name}`: no longer used.
lint_builtin_deref_nullptr = dereferencing a null pointer
.label = this code causes undefined behavior when executed
lint_builtin_ellipsis_inclusive_range_patterns = `...` range patterns are deprecated
.suggestion = use `..=` for an inclusive range
2022-08-10 02:42:10 -05:00
lint_builtin_explicit_outlives = outlives requirements can be inferred
2022-06-27 08:40:55 -05:00
.suggestion = remove {$count ->
[one] this bound
*[other] these bounds
}
2022-06-27 08:46:45 -05:00
2022-08-10 02:42:10 -05:00
lint_builtin_export_name_fn = declaration of a function with `export_name`
2022-06-27 08:50:58 -05:00
lint_builtin_export_name_method = declaration of a method with `export_name`
2022-06-27 09:00:01 -05:00
2022-08-10 02:42:10 -05:00
lint_builtin_export_name_static = declaration of a static with `export_name`
lint_builtin_impl_unsafe_method = implementation of an `unsafe` method
2022-06-27 09:00:01 -05:00
2022-08-10 02:42:10 -05:00
lint_builtin_incomplete_features = the feature `{$name}` is incomplete and may not be safe to use and/or cause compiler crashes
2022-06-28 08:40:11 -05:00
.note = see issue #{$n} <https://github.com/rust-lang/rust/issues/{$n}> for more information
2022-06-27 09:00:01 -05:00
.help = consider using `min_{$name}` instead, which is more stable and complete
2023-03-09 14:54:53 -06:00
lint_builtin_internal_features = the feature `{$name}` is internal to the compiler or standard library
.note = using it is strongly discouraged
2022-08-10 02:42:10 -05:00
lint_builtin_keyword_idents = `{$kw}` is a keyword in the {$next} edition
2022-06-27 09:00:01 -05:00
.suggestion = you can use a raw identifier to stay compatible
2022-06-27 09:09:24 -05:00
lint_builtin_link_section_fn = declaration of a function with `link_section`
2022-06-27 09:18:30 -05:00
2023-04-10 15:02:52 -05:00
lint_builtin_link_section_static = declaration of a static with `link_section`
2022-06-27 09:27:41 -05:00
2022-09-18 10:46:16 -05:00
lint_builtin_missing_copy_impl = type could implement `Copy`; consider adding `impl Copy`
2022-06-27 09:27:41 -05:00
2022-08-10 02:42:10 -05:00
lint_builtin_missing_debug_impl =
type does not implement `{$debug}`; consider adding `#[derive(Debug)]` or a manual implementation
2022-06-27 09:47:27 -05:00
2023-03-04 21:39:37 -06:00
lint_builtin_missing_doc = missing documentation for {$article} {$desc}
2022-10-22 15:32:54 -05:00
lint_builtin_mutable_transmutes =
transmuting &T to &mut T is undefined behavior, even if the reference is unused, consider instead using an UnsafeCell
2022-08-10 02:42:10 -05:00
lint_builtin_no_mangle_fn = declaration of a `no_mangle` function
2022-06-27 09:47:27 -05:00
lint_builtin_no_mangle_generic = functions generic over types or consts must be mangled
.suggestion = remove this attribute
2022-06-27 09:57:35 -05:00
2023-04-10 15:02:52 -05:00
lint_builtin_no_mangle_method = declaration of a `no_mangle` method
lint_builtin_no_mangle_static = declaration of a `no_mangle` static
lint_builtin_non_shorthand_field_patterns = the `{$ident}:` in this pattern is redundant
.suggestion = use shorthand field pattern
2022-12-08 20:27:03 -06:00
2022-08-10 02:42:10 -05:00
lint_builtin_overridden_symbol_name =
the linker's behavior with multiple libraries exporting duplicate symbol names is undefined and Rust cannot provide guarantees when you manually override them
2022-06-27 09:57:35 -05:00
2022-08-10 02:42:10 -05:00
lint_builtin_overridden_symbol_section =
the program's behavior with overridden link sections on items is unpredictable and Rust cannot provide guarantees when you manually override them
2022-06-27 09:57:35 -05:00
2022-08-10 02:42:10 -05:00
lint_builtin_special_module_name_used_lib = found module declaration for lib.rs
2022-06-27 09:57:35 -05:00
.note = lib.rs is the root of this crate's library target
.help = to refer to it from other targets, use the library's name as the path
lint_builtin_special_module_name_used_main = found module declaration for main.rs
.note = a binary crate cannot be used as library
2022-06-27 10:33:57 -05:00
lint_builtin_trivial_bounds = {$predicate_kind_name} bound {$predicate} does not depend on any type or lifetime parameters
lint_builtin_type_alias_bounds_help = use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
2022-08-10 02:42:10 -05:00
lint_builtin_type_alias_generic_bounds = bounds on generic parameters are not enforced in type aliases
2022-06-27 10:33:57 -05:00
.suggestion = the bound will not be checked when the type alias is used, and should be removed
2022-06-27 10:46:25 -05:00
2022-08-10 02:42:10 -05:00
lint_builtin_type_alias_where_clause = where clauses are not enforced in type aliases
2022-06-27 10:46:25 -05:00
.suggestion = the clause will not be checked when the type alias is used, and should be removed
2022-08-10 02:42:10 -05:00
lint_builtin_unexpected_cli_config_name = unexpected `{$name}` as condition name
2022-06-27 10:46:25 -05:00
.help = was set with `--cfg` but isn't in the `--check-cfg` expected names
2022-08-10 02:42:10 -05:00
lint_builtin_unexpected_cli_config_value = unexpected condition value `{$value}` for condition name `{$name}`
2022-06-27 10:46:25 -05:00
.help = was set with `--cfg` but isn't in the `--check-cfg` expected values
2022-06-27 10:52:51 -05:00
2022-08-10 02:42:10 -05:00
lint_builtin_unpermitted_type_init_label = this code causes undefined behavior when executed
2022-06-27 10:57:40 -05:00
lint_builtin_unpermitted_type_init_label_suggestion = help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
2022-06-27 11:02:46 -05:00
lint_builtin_unpermitted_type_init_uninit = the type `{$ty}` does not permit being left uninitialized
2022-06-27 11:11:53 -05:00
lint_builtin_unpermitted_type_init_zeroed = the type `{$ty}` does not permit zero-initialization
lint_builtin_unreachable_pub = unreachable `pub` {$what}
.suggestion = consider restricting its visibility
.help = or consider exporting it for use by other crates
lint_builtin_unsafe_block = usage of an `unsafe` block
2022-06-27 11:42:47 -05:00
2022-08-10 02:42:10 -05:00
lint_builtin_unsafe_impl = implementation of an `unsafe` trait
2023-03-24 12:00:49 -05:00
lint_builtin_unsafe_trait = declaration of an `unsafe` trait
2022-08-10 02:42:10 -05:00
lint_builtin_unstable_features = unstable feature
2022-06-27 11:42:47 -05:00
2022-08-10 02:42:10 -05:00
lint_builtin_unused_doc_comment = unused doc comment
.label = rustdoc does not generate documentation for {$kind}
2022-06-27 11:42:47 -05:00
.plain_help = use `//` for a plain comment
.block_help = use `/* */` for a plain comment
lint_builtin_while_true = denote infinite loops with `loop {"{"} ... {"}"}`
.suggestion = use `loop`
2022-08-10 02:42:10 -05:00
lint_check_name_deprecated = lint name `{$lint_name}` is deprecated and does not have an effect anymore. Use: {$new_name}
2022-06-27 11:42:47 -05:00
2022-08-10 02:42:10 -05:00
lint_check_name_unknown = unknown lint: `{$lint_name}`
2022-06-27 11:42:47 -05:00
.help = did you mean: `{$suggestion}`
lint_check_name_unknown_tool = unknown lint tool: `{$tool_name}`
2022-08-10 02:42:10 -05:00
lint_check_name_warning = {$msg}
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_command_line_source = `forbid` lint level was set on command line
2022-06-28 03:41:49 -05:00
2023-08-04 11:46:08 -05:00
lint_confusable_identifier_pair = found both `{$existing_sym}` and `{$sym}` as identifiers, which look alike
.current_use = this identifier can be confused with `{$existing_sym}`
.other_use = other identifier used here
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_cstring_ptr = getting the inner pointer of a temporary `CString`
.as_ptr_label = this pointer will be invalid
.unwrap_label = this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
.note = pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
.help = for more information, see https://doc.rust-lang.org/reference/destructors.html
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_default_hash_types = prefer `{$preferred}` over `{$used}`, it has better performance
.note = a `use rustc_data_structures::fx::{$preferred}` may be necessary
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_default_source = `forbid` lint level is the default for {$id}
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_deprecated_lint_name =
lint name `{$name}` is deprecated and may not have an effect in the future.
.suggestion = change it to
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_diag_out_of_impl =
diagnostics should only be created in `IntoDiagnostic`/`AddToDiagnostic` impls
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_drop_glue =
types that do not implement `Drop` can still have drop glue, consider instead using `{$needs_drop}` to detect whether a type is trivially dropped
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_drop_trait_constraints =
bounds on `{$predicate}` are most likely incorrect, consider instead using `{$needs_drop}` to detect whether a type can be trivially dropped
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_dropping_copy_types = calls to `std::mem::drop` with a value that implements `Copy` does nothing
.label = argument has type `{$arg_ty}`
.note = use `let _ = ...` to ignore the expression or result
2022-06-28 03:41:49 -05:00
lint_dropping_references = calls to `std::mem::drop` with a reference instead of an owned value does nothing
.label = argument has type `{$arg_ty}`
.note = use `let _ = ...` to ignore the expression or result
2022-08-10 02:42:10 -05:00
lint_enum_intrinsics_mem_discriminant =
the return value of `mem::discriminant` is unspecified when called with a non-enum type
.note = the argument to `discriminant` should be a reference to an enum, but it was passed a reference to a `{$ty_param}`, which is not an enum.
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_enum_intrinsics_mem_variant =
the return value of `mem::variant_count` is unspecified when called with a non-enum type
.note = the type parameter of `variant_count` should be an enum, but it was instantiated with the type `{$ty_param}`, which is not an enum.
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_expectation = this lint expectation is unfulfilled
.note = the `unfulfilled_lint_expectations` lint can't be expected and will always produce this message
.rationale = {$rationale}
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_for_loops_over_fallibles =
for loop over {$article} `{$ty}`. This is more readably written as an `if let` statement
.suggestion = consider using `if let` to clear intent
.remove_next = to iterate over `{$recv_snip}` remove the call to `next`
.use_while_let = to check pattern in a loop use `while let`
.use_question_mark = consider unwrapping the `Result` with `?` to iterate over its contents
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_forgetting_copy_types = calls to `std::mem::forget` with a value that implements `Copy` does nothing
.label = argument has type `{$arg_ty}`
.note = use `let _ = ...` to ignore the expression or result
lint_forgetting_references = calls to `std::mem::forget` with a reference instead of an owned value does nothing
2023-04-10 04:55:37 -05:00
.label = argument has type `{$arg_ty}`
2022-08-10 02:42:10 -05:00
.note = use `let _ = ...` to ignore the expression or result
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_hidden_unicode_codepoints = unicode codepoint changing visible direction of text present in {$label}
2022-06-27 08:40:55 -05:00
.label = this {$label} contains {$count ->
2022-08-10 02:42:10 -05:00
[one] an invisible
2022-06-27 08:40:55 -05:00
*[other] invisible
2022-08-10 02:42:10 -05:00
} unicode text flow control {$count ->
2022-06-27 08:40:55 -05:00
[one] codepoint
*[other] codepoints
2023-05-22 20:51:25 -05:00
}
2022-08-10 02:42:10 -05:00
.note = these kind of unicode codepoints change the way text flows on applications that support them, but can cause confusion because they change the order of characters on the screen
.suggestion_remove = if their presence wasn't intentional, you can remove them
.suggestion_escape = if you want to keep them but make them visible in your source code, you can escape them
.no_suggestion_note_escape = if you want to keep them but make them visible in your source code, you can escape them: {$escaped}
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_identifier_non_ascii_char = identifier contains non-ASCII characters
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_identifier_uncommon_codepoints = identifier contains uncommon Unicode codepoints
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_ignored_unless_crate_specified = {$level}({$name}) is ignored unless specified at crate level
2022-06-28 03:41:49 -05:00
2022-08-10 02:42:10 -05:00
lint_improper_ctypes = `extern` {$desc} uses type `{$ty}`, which is not FFI-safe
2022-06-28 03:41:49 -05:00
.label = not FFI-safe
2022-08-10 02:42:10 -05:00
.note = the type is defined here
2022-06-28 03:52:05 -05:00
lint_improper_ctypes_128bit = 128-bit integers don't currently have a known stable ABI
2022-06-28 03:59:30 -05:00
lint_improper_ctypes_array_help = consider passing a pointer to the array
2022-08-10 02:42:10 -05:00
lint_improper_ctypes_array_reason = passing raw arrays by value is not FFI-safe
lint_improper_ctypes_box = box cannot be represented as a single pointer
2022-06-28 03:59:30 -05:00
lint_improper_ctypes_char_help = consider using `u32` or `libc::wchar_t` instead
2022-08-10 02:42:10 -05:00
lint_improper_ctypes_char_reason = the `char` type has no C equivalent
lint_improper_ctypes_dyn = trait objects have no C equivalent
2022-06-28 03:59:30 -05:00
2022-08-10 02:42:10 -05:00
lint_improper_ctypes_enum_repr_help =
consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum
2022-06-28 04:14:10 -05:00
2022-08-10 02:42:10 -05:00
lint_improper_ctypes_enum_repr_reason = enum has no representation hint
2022-06-28 04:14:10 -05:00
lint_improper_ctypes_fnptr_help = consider using an `extern fn(...) -> ...` function pointer instead
2022-08-10 02:42:10 -05:00
lint_improper_ctypes_fnptr_reason = this function pointer has Rust-specific calling convention
2022-06-28 04:14:10 -05:00
lint_improper_ctypes_non_exhaustive = this enum is non-exhaustive
lint_improper_ctypes_non_exhaustive_variant = this enum has non-exhaustive variants
2022-08-10 02:42:10 -05:00
lint_improper_ctypes_only_phantomdata = composed only of `PhantomData`
2022-06-28 04:19:11 -05:00
2022-08-10 02:42:10 -05:00
lint_improper_ctypes_opaque = opaque types have no C equivalent
2022-06-28 04:19:11 -05:00
2022-08-10 02:42:10 -05:00
lint_improper_ctypes_slice_help = consider using a raw pointer instead
2022-06-28 04:28:57 -05:00
2022-08-10 02:42:10 -05:00
lint_improper_ctypes_slice_reason = slices have no C equivalent
lint_improper_ctypes_str_help = consider using `*const u8` and a length instead
2022-06-28 04:32:57 -05:00
2022-08-10 02:42:10 -05:00
lint_improper_ctypes_str_reason = string slices have no C equivalent
lint_improper_ctypes_struct_fieldless_help = consider adding a member to this struct
2022-06-28 04:43:38 -05:00
2022-08-10 02:42:10 -05:00
lint_improper_ctypes_struct_fieldless_reason = this struct has no fields
lint_improper_ctypes_struct_layout_help = consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
2022-06-28 04:55:42 -05:00
2022-08-10 02:42:10 -05:00
lint_improper_ctypes_struct_layout_reason = this struct has unspecified layout
lint_improper_ctypes_struct_non_exhaustive = this struct is non-exhaustive
2022-06-28 04:55:42 -05:00
lint_improper_ctypes_struct_zst = this struct contains only zero-sized fields
2022-06-28 04:56:01 -05:00
2022-08-10 02:42:10 -05:00
lint_improper_ctypes_tuple_help = consider using a struct instead
2022-06-28 04:56:18 -05:00
2022-08-10 02:42:10 -05:00
lint_improper_ctypes_tuple_reason = tuples have unspecified layout
lint_improper_ctypes_union_fieldless_help = consider adding a member to this union
2022-06-28 04:57:05 -05:00
lint_improper_ctypes_union_fieldless_reason = this union has no fields
lint_improper_ctypes_union_layout_help = consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this union
lint_improper_ctypes_union_layout_reason = this union has unspecified layout
lint_improper_ctypes_union_non_exhaustive = this union is non-exhaustive
2023-05-13 11:33:19 -05:00
# FIXME: we should ordinalize $valid_up_to when we add support for doing so
lint_invalid_from_utf8_checked = calls to `{$method}` with a invalid literal always return an error
.label = the literal was valid UTF-8 up to the {$valid_up_to} bytes
2023-05-13 10:12:45 -05:00
# FIXME: we should ordinalize $valid_up_to when we add support for doing so
lint_invalid_from_utf8_unchecked = calls to `{$method}` with a invalid literal are undefined behavior
.label = the literal was valid UTF-8 up to the {$valid_up_to} bytes
2023-05-20 16:05:09 -05:00
lint_invalid_nan_comparisons_eq_ne = incorrect NaN comparison, NaN cannot be directly compared to itself
.suggestion = use `f32::is_nan()` or `f64::is_nan()` instead
lint_invalid_nan_comparisons_lt_le_gt_ge = incorrect NaN comparison, NaN is not orderable
2023-07-14 15:25:47 -05:00
lint_invalid_reference_casting_assign_to_ref = assigning to `&T` is undefined behavior, consider using an `UnsafeCell`
.label = casting happend here
lint_invalid_reference_casting_borrow_as_mut = casting `&T` to `&mut T` is undefined behavior, even if the reference is unused, consider instead using an `UnsafeCell`
2023-07-14 15:10:14 -05:00
.label = casting happend here
2023-07-06 14:45:24 -05:00
2022-08-10 02:42:10 -05:00
lint_lintpass_by_hand = implementing `LintPass` by hand
2022-06-28 04:57:05 -05:00
.help = try using `declare_lint_pass!` or `impl_lint_pass!` instead
2022-08-10 02:42:10 -05:00
lint_malformed_attribute = malformed lint attribute input
2022-06-28 04:57:05 -05:00
2022-08-10 02:42:10 -05:00
lint_map_unit_fn = `Iterator::map` call that discard the iterator's values
.note = `Iterator::map`, like many of the methods on `Iterator`, gets executed lazily, meaning that its effects won't be visible until it is iterated
.function_label = this function returns `()`, which is likely not what you wanted
2023-02-16 13:04:59 -06:00
.argument_label = called `Iterator::map` with callable that returns `()`
2022-08-10 02:42:10 -05:00
.map_label = after this call to map, the resulting iterator is `impl Iterator<Item = ()>`, which means the only information carried by the iterator is the number of items
2023-02-16 13:04:59 -06:00
.suggestion = you might have meant to use `Iterator::for_each`
2022-06-28 04:57:05 -05:00
2022-08-10 02:42:10 -05:00
lint_mixed_script_confusables =
the usage of Script Group `{$set}` in this crate consists solely of mixed script confusables
.includes_note = the usage includes {$includes}
.note = please recheck to make sure their usages are indeed what you want
2022-06-28 04:57:05 -05:00
2022-08-10 02:42:10 -05:00
lint_multiple_supertrait_upcastable = `{$ident}` is object-safe and has multiple supertraits
2022-06-28 04:57:05 -05:00
2022-08-10 02:42:10 -05:00
lint_node_source = `forbid` level set here
.note = {$reason}
2022-06-28 04:57:05 -05:00
2022-08-10 02:42:10 -05:00
lint_non_binding_let_multi_suggestion =
consider immediately dropping the value
2022-06-28 04:57:05 -05:00
2022-08-10 02:42:10 -05:00
lint_non_binding_let_on_drop_type =
non-binding let on a type that implements `Drop`
2022-06-28 04:57:19 -05:00
2022-08-10 02:42:10 -05:00
lint_non_binding_let_on_sync_lock =
non-binding let on a synchronization lock
2022-06-28 05:23:11 -05:00
2022-08-10 02:42:10 -05:00
lint_non_binding_let_suggestion =
consider binding to an unused variable to avoid immediately dropping the value
2022-06-28 05:27:26 -05:00
lint_non_camel_case_type = {$sort} `{$name}` should have an upper camel case name
.suggestion = convert the identifier to upper camel case
.label = should have an UpperCamelCase name
2022-06-28 05:31:44 -05:00
2022-08-10 02:42:10 -05:00
lint_non_existent_doc_keyword = found non-existing keyword `{$keyword}` used in `#[doc(keyword = "...")]`
2022-06-28 05:31:44 -05:00
.help = only existing keywords are allowed in core/std
2022-06-28 05:51:15 -05:00
2022-08-10 02:42:10 -05:00
lint_non_fmt_panic = panic message is not a string literal
.note = this usage of `{$name}!()` is deprecated; it will be a hard error in Rust 2021
.more_info_note = for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
.supports_fmt_note = the `{$name}!()` macro supports formatting, so there's no need for the `format!()` macro here
.supports_fmt_suggestion = remove the `format!(..)` macro call
.display_suggestion = add a "{"{"}{"}"}" format string to `Display` the message
.debug_suggestion =
add a "{"{"}:?{"}"}" format string to use the `Debug` implementation of `{$ty}`
.panic_suggestion = {$already_suggested ->
2022-06-27 10:33:57 -05:00
[true] or use
2022-08-10 02:42:10 -05:00
*[false] use
} std::panic::panic_any instead
2022-06-28 07:35:33 -05:00
2022-08-10 02:42:10 -05:00
lint_non_fmt_panic_braces =
panic message contains {$count ->
2022-06-28 07:35:33 -05:00
[one] a brace
*[other] braces
}
.note = this message is not used as a format string, but will be in Rust 2021
2022-08-10 02:42:10 -05:00
.suggestion = add a "{"{"}{"}"}" format string to use the message literally
2022-06-28 07:40:59 -05:00
2022-08-10 02:42:10 -05:00
lint_non_fmt_panic_unused =
panic message contains {$count ->
[one] an unused
*[other] unused
} formatting {$count ->
[one] placeholder
*[other] placeholders
2023-05-22 20:51:25 -05:00
}
2022-08-10 02:42:10 -05:00
.note = this message is not used as a format string when given without arguments, but will be in Rust 2021
.add_args_suggestion = add the missing {$count ->
2022-06-27 10:33:57 -05:00
[one] argument
2022-06-28 07:40:59 -05:00
*[other] arguments
2023-05-22 20:51:25 -05:00
}
2022-06-28 07:40:59 -05:00
.add_fmt_suggestion = or add a "{"{"}{"}"}" format string to use the message literally
2022-08-10 02:42:10 -05:00
lint_non_snake_case = {$sort} `{$name}` should have a snake case name
.rename_or_convert_suggestion = rename the identifier or convert it to a snake case raw identifier
.cannot_convert_note = `{$sc}` cannot be used as a raw identifier
2022-06-28 07:40:59 -05:00
.rename_suggestion = rename the identifier
.convert_suggestion = convert the identifier to snake case
2022-08-10 02:42:10 -05:00
.help = convert the identifier to snake case: `{$sc}`
2022-06-28 07:40:59 -05:00
.label = should have a snake_case name
2022-06-28 07:45:49 -05:00
2022-08-10 02:42:10 -05:00
lint_non_upper_case_global = {$sort} `{$name}` should have an upper case name
2022-06-28 07:45:49 -05:00
.suggestion = convert the identifier to upper case
.label = should have an UPPER_CASE name
2022-06-28 07:50:44 -05:00
2022-08-10 02:42:10 -05:00
lint_noop_method_call = call to `.{$method}()` on a reference in this situation does nothing
2023-07-23 04:56:56 -05:00
.suggestion = remove this redundant call
2023-05-25 00:21:44 -05:00
.note = the type `{$orig_ty}` does not implement `{$trait_}`, so calling `{$method}` on `&{$orig_ty}` copies the reference, which does not do anything and can be removed
2022-06-28 07:55:12 -05:00
2022-11-23 21:39:47 -06:00
lint_only_cast_u8_to_char = only `u8` can be cast into `char`
2022-12-20 21:13:28 -06:00
.suggestion = use a `char` literal instead
2022-11-22 15:15:27 -06:00
2022-08-10 02:42:10 -05:00
lint_opaque_hidden_inferred_bound = opaque type `{$ty}` does not satisfy its associated type bounds
2022-06-28 07:55:12 -05:00
.specifically = this associated type bound is unsatisfied for `{$proj_ty}`
2022-06-28 08:04:42 -05:00
2022-08-11 12:50:48 -05:00
lint_opaque_hidden_inferred_bound_sugg = add this bound
lint_overflowing_bin_hex = literal out of range for `{$ty}`
.negative_note = the literal `{$lit}` (decimal `{$dec}`) does not fit into the type `{$ty}`
.negative_becomes_note = and the value `-{$lit}` will become `{$actually}{$ty}`
.positive_note = the literal `{$lit}` (decimal `{$dec}`) does not fit into the type `{$ty}` and will become `{$actually}{$ty}`
.suggestion = consider using the type `{$suggestion_ty}` instead
2023-05-04 12:29:11 -05:00
.sign_bit_suggestion = to use as a negative number (decimal `{$negative_val}`), consider using the type `{$uint_ty}` for the literal and cast it to `{$int_ty}`
2022-08-11 12:50:48 -05:00
.help = consider using the type `{$suggestion_ty}` instead
2022-08-10 02:42:10 -05:00
lint_overflowing_int = literal out of range for `{$ty}`
.note = the literal `{$lit}` does not fit into the type `{$ty}` whose range is `{$min}..={$max}`
.help = consider using the type `{$suggestion_ty}` instead
2022-06-28 08:04:42 -05:00
2022-08-10 02:42:10 -05:00
lint_overflowing_literal = literal out of range for `{$ty}`
2022-06-28 08:04:42 -05:00
.note = the literal `{$lit}` does not fit into the type `{$ty}` and will be converted to `{$ty}::INFINITY`
2022-08-10 02:42:10 -05:00
lint_overflowing_uint = literal out of range for `{$ty}`
2022-06-28 08:04:42 -05:00
.note = the literal `{$lit}` does not fit into the type `{$ty}` whose range is `{$min}..={$max}`
2022-06-28 08:09:25 -05:00
2022-08-10 02:42:10 -05:00
lint_overruled_attribute = {$lint_level}({$lint_source}) incompatible with previous forbid
.label = overruled by previous forbid
2022-06-28 08:16:03 -05:00
2022-08-10 02:42:10 -05:00
lint_pass_by_value = passing `{$ty}` by reference
2022-06-28 08:16:03 -05:00
.suggestion = try passing by value
2022-06-28 08:20:10 -05:00
2022-08-10 02:42:10 -05:00
lint_path_statement_drop = path statement drops value
.suggestion = use `drop` to clarify the intent
2022-06-28 08:28:02 -05:00
2022-08-10 02:42:10 -05:00
lint_path_statement_no_effect = path statement with no effect
2022-06-28 08:32:38 -05:00
2023-07-13 05:01:13 -05:00
lint_ptr_null_checks_fn_ptr = function pointers are not nullable, so checking them for null will always return false
.help = wrap the function pointer inside an `Option` and use `Option::is_none` to check for null pointer value
2023-08-03 03:57:11 -05:00
.label = expression has type `{$orig_ty}`
2023-07-13 05:01:13 -05:00
lint_ptr_null_checks_ref = references are not nullable, so checking them for null will always return false
.label = expression has type `{$orig_ty}`
2022-08-10 02:42:10 -05:00
lint_query_instability = using `{$query}` can result in unstable query results
.note = if you believe this case to be fine, allow this lint and add a comment explaining your rationale
2022-06-28 08:40:11 -05:00
2022-08-10 02:42:10 -05:00
lint_range_endpoint_out_of_range = range endpoint is out of range for `{$ty}`
2022-06-28 09:08:34 -05:00
2023-04-17 02:16:07 -05:00
lint_range_use_inclusive_range = use an inclusive range instead
2022-11-13 08:46:31 -06:00
lint_reason_must_be_string_literal = reason must be a string literal
2022-06-28 09:12:35 -05:00
2022-08-10 02:42:10 -05:00
lint_reason_must_come_last = reason in lint attribute must come last
2022-06-28 09:16:49 -05:00
2022-08-10 02:42:10 -05:00
lint_redundant_semicolons =
unnecessary trailing {$multiple ->
2022-06-27 11:02:46 -05:00
[true] semicolons
2022-08-10 02:42:10 -05:00
*[false] semicolon
2023-05-22 20:51:25 -05:00
}
2022-06-27 11:02:46 -05:00
.suggestion = remove {$multiple ->
[true] these semicolons
2022-08-10 02:42:10 -05:00
*[false] this semicolon
2023-05-22 20:51:25 -05:00
}
2022-08-19 14:50:38 -05:00
2022-10-22 20:50:44 -05:00
lint_renamed_or_removed_lint = {$msg}
.suggestion = use the new name
lint_requested_level = requested on the command line with `{$level} {$lint_name}`
2022-11-24 19:03:06 -06:00
lint_supertrait_as_deref_target = `{$t}` implements `Deref` with supertrait `{$target_principal}` as target
.label = target type is set here
2023-06-11 03:18:56 -05:00
lint_suspicious_double_ref_clone =
using `.clone()` on a double reference, which returns `{$ty}` instead of cloning the inner type
lint_suspicious_double_ref_deref =
using `.deref()` on a double reference, which returns `{$ty}` instead of dereferencing the inner type
2022-08-19 19:47:05 -05:00
lint_trivial_untranslatable_diag = diagnostic with static strings only
lint_ty_qualified = usage of qualified `ty::{$ty}`
.suggestion = try importing it and using it unqualified
lint_tykind = usage of `ty::TyKind`
.help = try using `Ty` instead
2022-08-19 16:17:14 -05:00
lint_tykind_kind = usage of `ty::TyKind::<kind>`
.suggestion = try using `ty::<kind>` directly
2023-05-12 12:30:15 -05:00
lint_undropped_manually_drops = calls to `std::mem::drop` with `std::mem::ManuallyDrop` instead of the inner value does nothing
.label = argument has type `{$arg_ty}`
.suggestion = use `std::mem::ManuallyDrop::into_inner` to get the inner value
2022-08-19 16:17:14 -05:00
lint_ungated_async_fn_track_caller = `#[track_caller]` on async functions is a no-op
.label = this function will not propagate the caller location
lint_unknown_gated_lint =
unknown lint: `{$name}`
.note = the `{$name}` lint is unstable
lint_unknown_lint =
unknown lint: `{$name}`
.suggestion = did you mean
2022-08-20 11:30:49 -05:00
lint_unknown_tool_in_scoped_lint = unknown tool name `{$tool_name}` found in scoped lint: `{$tool_name}::{$lint_name}`
2022-08-19 14:50:38 -05:00
.help = add `#![register_tool({$tool_name})]` to the crate root
2022-08-20 14:48:03 -05:00
lint_unsupported_group = `{$lint_group}` lint group is not supported with ´ --force-warn´
lint_untranslatable_diag = diagnostics should be created using translatable messages
lint_unused_allocation = unnecessary allocation, use `&` instead
lint_unused_allocation_mut = unnecessary allocation, use `&mut` instead
lint_unused_closure =
unused {$pre}{$count ->
2022-06-28 04:14:10 -05:00
[one] closure
2022-08-20 14:48:03 -05:00
*[other] closures
}{$post} that must be used
.note = closures are lazy and do nothing unless called
lint_unused_comparisons = comparison is useless due to type limits
lint_unused_def = unused {$pre}`{$def}`{$post} that must be used
.suggestion = use `let _ = ...` to ignore the resulting value
2022-10-01 23:45:54 -05:00
2022-10-02 00:45:15 -05:00
lint_unused_delim = unnecessary {$delim} around {$item}
2022-10-01 23:45:54 -05:00
.suggestion = remove these {$delim}
2022-10-05 14:46:40 -05:00
lint_unused_generator =
unused {$pre}{$count ->
2022-06-28 04:14:10 -05:00
[one] generator
*[other] generator
2022-10-05 14:46:40 -05:00
}{$post} that must be used
.note = generators are lazy and do nothing unless resumed
2023-03-26 05:25:08 -05:00
2023-05-19 04:25:35 -05:00
lint_unused_import_braces = braces around {$node} is unnecessary
2023-03-27 13:59:59 -05:00
2023-05-19 04:14:55 -05:00
lint_unused_op = unused {$op} that must be used
2023-04-10 04:55:37 -05:00
.label = the {$op} produces a value
2023-04-14 15:20:27 -05:00
.suggestion = use `let _ = ...` to ignore the resulting value
2023-03-28 11:31:21 -05:00
2023-05-19 04:30:11 -05:00
lint_unused_result = unused result of type `{$ty}`
2023-03-28 11:47:37 -05:00
2023-05-19 04:19:31 -05:00
lint_variant_size_differences =
enum variant is more than three times larger ({$largest} bytes) than the next largest