]>
Commit | Line | Data |
---|---|---|
f2b60f7d | 1 | lint_array_into_iter = |
064997fb | 2 | 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 |
f2b60f7d FG |
3 | .use_iter_suggestion = use `.iter()` instead of `.into_iter()` to avoid ambiguity |
4 | .remove_into_iter_suggestion = or remove `.into_iter()` to iterate by value | |
5 | .use_explicit_into_iter_suggestion = | |
064997fb FG |
6 | or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value |
7 | ||
f2b60f7d | 8 | lint_enum_intrinsics_mem_discriminant = |
064997fb FG |
9 | the return value of `mem::discriminant` is unspecified when called with a non-enum type |
10 | .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. | |
11 | ||
f2b60f7d | 12 | lint_enum_intrinsics_mem_variant = |
064997fb FG |
13 | the return value of `mem::variant_count` is unspecified when called with a non-enum type |
14 | .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. | |
15 | ||
f2b60f7d | 16 | lint_expectation = this lint expectation is unfulfilled |
064997fb | 17 | .note = the `unfulfilled_lint_expectations` lint can't be expected and will always produce this message |
9c376795 FG |
18 | .rationale = {$rationale} |
19 | ||
20 | lint_for_loops_over_fallibles = | |
21 | for loop over {$article} `{$ty}`. This is more readably written as an `if let` statement | |
22 | .suggestion = consider using `if let` to clear intent | |
23 | .remove_next = to iterate over `{$recv_snip}` remove the call to `next` | |
24 | .use_while_let = to check pattern in a loop use `while let` | |
25 | .use_question_mark = consider unwrapping the `Result` with `?` to iterate over its contents | |
26 | ||
9ffffee4 FG |
27 | lint_map_unit_fn = `Iterator::map` call that discard the iterator's values |
28 | .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 | |
29 | .function_label = this function returns `()`, which is likely not what you wanted | |
30 | .argument_label = called `Iterator::map` with callable that returns `()` | |
31 | .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 | |
32 | .suggestion = you might have meant to use `Iterator::for_each` | |
33 | ||
9c376795 FG |
34 | lint_non_binding_let_on_sync_lock = |
35 | non-binding let on a synchronization lock | |
36 | ||
37 | lint_non_binding_let_on_drop_type = | |
38 | non-binding let on a type that implements `Drop` | |
39 | ||
40 | lint_non_binding_let_suggestion = | |
41 | consider binding to an unused variable to avoid immediately dropping the value | |
42 | ||
43 | lint_non_binding_let_multi_suggestion = | |
44 | consider immediately dropping the value | |
45 | ||
46 | lint_deprecated_lint_name = | |
47 | lint name `{$name}` is deprecated and may not have an effect in the future. | |
48 | .suggestion = change it to | |
49 | ||
50 | lint_renamed_or_removed_lint = {$msg} | |
51 | .suggestion = use the new name | |
52 | ||
53 | lint_unknown_lint = | |
54 | unknown lint: `{$name}` | |
55 | .suggestion = did you mean | |
56 | ||
57 | lint_ignored_unless_crate_specified = {$level}({$name}) is ignored unless specified at crate level | |
58 | ||
59 | lint_unknown_gated_lint = | |
60 | unknown lint: `{$name}` | |
61 | .note = the `{$name}` lint is unstable | |
064997fb | 62 | |
f2b60f7d | 63 | lint_hidden_unicode_codepoints = unicode codepoint changing visible direction of text present in {$label} |
064997fb FG |
64 | .label = this {$label} contains {$count -> |
65 | [one] an invisible | |
66 | *[other] invisible | |
67 | } unicode text flow control {$count -> | |
68 | [one] codepoint | |
69 | *[other] codepoints | |
70 | } | |
71 | .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 | |
f2b60f7d FG |
72 | .suggestion_remove = if their presence wasn't intentional, you can remove them |
73 | .suggestion_escape = if you want to keep them but make them visible in your source code, you can escape them | |
74 | .no_suggestion_note_escape = if you want to keep them but make them visible in your source code, you can escape them: {$escaped} | |
064997fb | 75 | |
f2b60f7d | 76 | lint_default_hash_types = prefer `{$preferred}` over `{$used}`, it has better performance |
064997fb FG |
77 | .note = a `use rustc_data_structures::fx::{$preferred}` may be necessary |
78 | ||
f2b60f7d | 79 | lint_query_instability = using `{$query}` can result in unstable query results |
064997fb FG |
80 | .note = if you believe this case to be fine, allow this lint and add a comment explaining your rationale |
81 | ||
f2b60f7d | 82 | lint_tykind_kind = usage of `ty::TyKind::<kind>` |
064997fb FG |
83 | .suggestion = try using `ty::<kind>` directly |
84 | ||
f2b60f7d | 85 | lint_tykind = usage of `ty::TyKind` |
064997fb FG |
86 | .help = try using `Ty` instead |
87 | ||
f2b60f7d | 88 | lint_ty_qualified = usage of qualified `ty::{$ty}` |
064997fb FG |
89 | .suggestion = try importing it and using it unqualified |
90 | ||
f2b60f7d | 91 | lint_lintpass_by_hand = implementing `LintPass` by hand |
064997fb FG |
92 | .help = try using `declare_lint_pass!` or `impl_lint_pass!` instead |
93 | ||
f2b60f7d | 94 | lint_non_existant_doc_keyword = found non-existing keyword `{$keyword}` used in `#[doc(keyword = \"...\")]` |
064997fb FG |
95 | .help = only existing keywords are allowed in core/std |
96 | ||
f2b60f7d | 97 | lint_diag_out_of_impl = |
2b03887a | 98 | diagnostics should only be created in `IntoDiagnostic`/`AddToDiagnostic` impls |
064997fb | 99 | |
f2b60f7d | 100 | lint_untranslatable_diag = diagnostics should be created using translatable messages |
064997fb | 101 | |
9c376795 FG |
102 | lint_bad_opt_access = {$msg} |
103 | ||
f2b60f7d FG |
104 | lint_cstring_ptr = getting the inner pointer of a temporary `CString` |
105 | .as_ptr_label = this pointer will be invalid | |
106 | .unwrap_label = this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime | |
064997fb FG |
107 | .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 |
108 | .help = for more information, see https://doc.rust-lang.org/reference/destructors.html | |
109 | ||
9ffffee4 FG |
110 | lint_multple_supertrait_upcastable = `{$ident}` is object-safe and has multiple supertraits |
111 | ||
f2b60f7d | 112 | lint_identifier_non_ascii_char = identifier contains non-ASCII characters |
064997fb | 113 | |
f2b60f7d | 114 | lint_identifier_uncommon_codepoints = identifier contains uncommon Unicode codepoints |
064997fb | 115 | |
f2b60f7d | 116 | lint_confusable_identifier_pair = identifier pair considered confusable between `{$existing_sym}` and `{$sym}` |
064997fb FG |
117 | .label = this is where the previous identifier occurred |
118 | ||
f2b60f7d | 119 | lint_mixed_script_confusables = |
064997fb | 120 | the usage of Script Group `{$set}` in this crate consists solely of mixed script confusables |
f2b60f7d | 121 | .includes_note = the usage includes {$includes} |
064997fb FG |
122 | .note = please recheck to make sure their usages are indeed what you want |
123 | ||
f2b60f7d | 124 | lint_non_fmt_panic = panic message is not a string literal |
064997fb | 125 | .note = this usage of `{$name}!()` is deprecated; it will be a hard error in Rust 2021 |
f2b60f7d FG |
126 | .more_info_note = for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html> |
127 | .supports_fmt_note = the `{$name}!()` macro supports formatting, so there's no need for the `format!()` macro here | |
128 | .supports_fmt_suggestion = remove the `format!(..)` macro call | |
129 | .display_suggestion = add a "{"{"}{"}"}" format string to `Display` the message | |
130 | .debug_suggestion = | |
064997fb | 131 | add a "{"{"}:?{"}"}" format string to use the `Debug` implementation of `{$ty}` |
f2b60f7d | 132 | .panic_suggestion = {$already_suggested -> |
064997fb FG |
133 | [true] or use |
134 | *[false] use | |
135 | } std::panic::panic_any instead | |
136 | ||
f2b60f7d | 137 | lint_non_fmt_panic_unused = |
064997fb FG |
138 | panic message contains {$count -> |
139 | [one] an unused | |
140 | *[other] unused | |
141 | } formatting {$count -> | |
142 | [one] placeholder | |
143 | *[other] placeholders | |
144 | } | |
145 | .note = this message is not used as a format string when given without arguments, but will be in Rust 2021 | |
f2b60f7d | 146 | .add_args_suggestion = add the missing {$count -> |
064997fb FG |
147 | [one] argument |
148 | *[other] arguments | |
149 | } | |
f2b60f7d | 150 | .add_fmt_suggestion = or add a "{"{"}{"}"}" format string to use the message literally |
064997fb | 151 | |
f2b60f7d | 152 | lint_non_fmt_panic_braces = |
064997fb FG |
153 | panic message contains {$count -> |
154 | [one] a brace | |
155 | *[other] braces | |
156 | } | |
157 | .note = this message is not used as a format string, but will be in Rust 2021 | |
158 | .suggestion = add a "{"{"}{"}"}" format string to use the message literally | |
159 | ||
f2b60f7d | 160 | lint_non_camel_case_type = {$sort} `{$name}` should have an upper camel case name |
064997fb FG |
161 | .suggestion = convert the identifier to upper camel case |
162 | .label = should have an UpperCamelCase name | |
163 | ||
f2b60f7d FG |
164 | lint_non_snake_case = {$sort} `{$name}` should have a snake case name |
165 | .rename_or_convert_suggestion = rename the identifier or convert it to a snake case raw identifier | |
166 | .cannot_convert_note = `{$sc}` cannot be used as a raw identifier | |
167 | .rename_suggestion = rename the identifier | |
168 | .convert_suggestion = convert the identifier to snake case | |
064997fb FG |
169 | .help = convert the identifier to snake case: `{$sc}` |
170 | .label = should have a snake_case name | |
171 | ||
f2b60f7d | 172 | lint_non_upper_case_global = {$sort} `{$name}` should have an upper case name |
064997fb FG |
173 | .suggestion = convert the identifier to upper case |
174 | .label = should have an UPPER_CASE name | |
175 | ||
f2b60f7d | 176 | lint_noop_method_call = call to `.{$method}()` on a reference in this situation does nothing |
064997fb FG |
177 | .label = unnecessary method call |
178 | .note = the type `{$receiver_ty}` which `{$method}` is being called on is the same as the type returned from `{$method}`, so the method call does not do anything and can be removed | |
179 | ||
f2b60f7d | 180 | lint_pass_by_value = passing `{$ty}` by reference |
064997fb FG |
181 | .suggestion = try passing by value |
182 | ||
f2b60f7d | 183 | lint_redundant_semicolons = |
064997fb FG |
184 | unnecessary trailing {$multiple -> |
185 | [true] semicolons | |
186 | *[false] semicolon | |
187 | } | |
188 | .suggestion = remove {$multiple -> | |
189 | [true] these semicolons | |
190 | *[false] this semicolon | |
191 | } | |
192 | ||
f2b60f7d | 193 | lint_drop_trait_constraints = |
064997fb FG |
194 | bounds on `{$predicate}` are most likely incorrect, consider instead using `{$needs_drop}` to detect whether a type can be trivially dropped |
195 | ||
f2b60f7d | 196 | lint_drop_glue = |
064997fb FG |
197 | types that do not implement `Drop` can still have drop glue, consider instead using `{$needs_drop}` to detect whether a type is trivially dropped |
198 | ||
f2b60f7d | 199 | lint_range_endpoint_out_of_range = range endpoint is out of range for `{$ty}` |
064997fb FG |
200 | .suggestion = use an inclusive range instead |
201 | ||
f2b60f7d FG |
202 | lint_overflowing_bin_hex = literal out of range for `{$ty}` |
203 | .negative_note = the literal `{$lit}` (decimal `{$dec}`) does not fit into the type `{$ty}` | |
204 | .negative_becomes_note = and the value `-{$lit}` will become `{$actually}{$ty}` | |
205 | .positive_note = the literal `{$lit}` (decimal `{$dec}`) does not fit into the type `{$ty}` and will become `{$actually}{$ty}` | |
064997fb FG |
206 | .suggestion = consider using the type `{$suggestion_ty}` instead |
207 | .help = consider using the type `{$suggestion_ty}` instead | |
208 | ||
f2b60f7d | 209 | lint_overflowing_int = literal out of range for `{$ty}` |
064997fb FG |
210 | .note = the literal `{$lit}` does not fit into the type `{$ty}` whose range is `{$min}..={$max}` |
211 | .help = consider using the type `{$suggestion_ty}` instead | |
212 | ||
f2b60f7d | 213 | lint_only_cast_u8_to_char = only `u8` can be cast into `char` |
064997fb FG |
214 | .suggestion = use a `char` literal instead |
215 | ||
f2b60f7d | 216 | lint_overflowing_uint = literal out of range for `{$ty}` |
064997fb FG |
217 | .note = the literal `{$lit}` does not fit into the type `{$ty}` whose range is `{$min}..={$max}` |
218 | ||
f2b60f7d | 219 | lint_overflowing_literal = literal out of range for `{$ty}` |
064997fb FG |
220 | .note = the literal `{$lit}` does not fit into the type `{$ty}` and will be converted to `{$ty}::INFINITY` |
221 | ||
f2b60f7d | 222 | lint_unused_comparisons = comparison is useless due to type limits |
064997fb | 223 | |
f2b60f7d | 224 | lint_improper_ctypes = `extern` {$desc} uses type `{$ty}`, which is not FFI-safe |
064997fb FG |
225 | .label = not FFI-safe |
226 | .note = the type is defined here | |
227 | ||
f2b60f7d | 228 | lint_improper_ctypes_opaque = opaque types have no C equivalent |
064997fb | 229 | |
f2b60f7d FG |
230 | lint_improper_ctypes_fnptr_reason = this function pointer has Rust-specific calling convention |
231 | lint_improper_ctypes_fnptr_help = consider using an `extern fn(...) -> ...` function pointer instead | |
064997fb | 232 | |
f2b60f7d FG |
233 | lint_improper_ctypes_tuple_reason = tuples have unspecified layout |
234 | lint_improper_ctypes_tuple_help = consider using a struct instead | |
064997fb | 235 | |
f2b60f7d FG |
236 | lint_improper_ctypes_str_reason = string slices have no C equivalent |
237 | lint_improper_ctypes_str_help = consider using `*const u8` and a length instead | |
064997fb | 238 | |
f2b60f7d | 239 | lint_improper_ctypes_dyn = trait objects have no C equivalent |
064997fb | 240 | |
f2b60f7d FG |
241 | lint_improper_ctypes_slice_reason = slices have no C equivalent |
242 | lint_improper_ctypes_slice_help = consider using a raw pointer instead | |
064997fb | 243 | |
f2b60f7d | 244 | lint_improper_ctypes_128bit = 128-bit integers don't currently have a known stable ABI |
064997fb | 245 | |
f2b60f7d FG |
246 | lint_improper_ctypes_char_reason = the `char` type has no C equivalent |
247 | lint_improper_ctypes_char_help = consider using `u32` or `libc::wchar_t` instead | |
064997fb | 248 | |
f2b60f7d FG |
249 | lint_improper_ctypes_non_exhaustive = this enum is non-exhaustive |
250 | lint_improper_ctypes_non_exhaustive_variant = this enum has non-exhaustive variants | |
064997fb | 251 | |
f2b60f7d FG |
252 | lint_improper_ctypes_enum_repr_reason = enum has no representation hint |
253 | lint_improper_ctypes_enum_repr_help = | |
064997fb FG |
254 | consider adding a `#[repr(C)]`, `#[repr(transparent)]`, or integer `#[repr(...)]` attribute to this enum |
255 | ||
f2b60f7d FG |
256 | lint_improper_ctypes_struct_fieldless_reason = this struct has no fields |
257 | lint_improper_ctypes_struct_fieldless_help = consider adding a member to this struct | |
064997fb | 258 | |
f2b60f7d FG |
259 | lint_improper_ctypes_union_fieldless_reason = this union has no fields |
260 | lint_improper_ctypes_union_fieldless_help = consider adding a member to this union | |
064997fb | 261 | |
f2b60f7d FG |
262 | lint_improper_ctypes_struct_non_exhaustive = this struct is non-exhaustive |
263 | lint_improper_ctypes_union_non_exhaustive = this union is non-exhaustive | |
064997fb | 264 | |
f2b60f7d FG |
265 | lint_improper_ctypes_struct_layout_reason = this struct has unspecified layout |
266 | lint_improper_ctypes_struct_layout_help = consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct | |
064997fb | 267 | |
f2b60f7d FG |
268 | lint_improper_ctypes_union_layout_reason = this union has unspecified layout |
269 | lint_improper_ctypes_union_layout_help = consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this union | |
064997fb | 270 | |
f2b60f7d | 271 | lint_improper_ctypes_box = box cannot be represented as a single pointer |
064997fb | 272 | |
f2b60f7d | 273 | lint_improper_ctypes_enum_phantomdata = this enum contains a PhantomData field |
064997fb | 274 | |
f2b60f7d | 275 | lint_improper_ctypes_struct_zst = this struct contains only zero-sized fields |
064997fb | 276 | |
f2b60f7d FG |
277 | lint_improper_ctypes_array_reason = passing raw arrays by value is not FFI-safe |
278 | lint_improper_ctypes_array_help = consider passing a pointer to the array | |
064997fb | 279 | |
f2b60f7d | 280 | lint_improper_ctypes_only_phantomdata = composed only of `PhantomData` |
064997fb | 281 | |
f2b60f7d | 282 | lint_variant_size_differences = |
064997fb FG |
283 | enum variant is more than three times larger ({$largest} bytes) than the next largest |
284 | ||
f2b60f7d | 285 | lint_atomic_ordering_load = atomic loads cannot have `Release` or `AcqRel` ordering |
064997fb FG |
286 | .help = consider using ordering modes `Acquire`, `SeqCst` or `Relaxed` |
287 | ||
f2b60f7d | 288 | lint_atomic_ordering_store = atomic stores cannot have `Acquire` or `AcqRel` ordering |
064997fb FG |
289 | .help = consider using ordering modes `Release`, `SeqCst` or `Relaxed` |
290 | ||
f2b60f7d | 291 | lint_atomic_ordering_fence = memory fences cannot have `Relaxed` ordering |
064997fb FG |
292 | .help = consider using ordering modes `Acquire`, `Release`, `AcqRel` or `SeqCst` |
293 | ||
f2b60f7d | 294 | lint_atomic_ordering_invalid = `{$method}`'s failure ordering may not be `Release` or `AcqRel`, since a failed `{$method}` does not result in a write |
064997fb FG |
295 | .label = invalid failure ordering |
296 | .help = consider using `Acquire` or `Relaxed` failure ordering instead | |
297 | ||
f2b60f7d | 298 | lint_unused_op = unused {$op} that must be used |
064997fb FG |
299 | .label = the {$op} produces a value |
300 | .suggestion = use `let _ = ...` to ignore the resulting value | |
301 | ||
f2b60f7d | 302 | lint_unused_result = unused result of type `{$ty}` |
064997fb | 303 | |
f2b60f7d | 304 | lint_unused_closure = |
064997fb FG |
305 | unused {$pre}{$count -> |
306 | [one] closure | |
307 | *[other] closures | |
308 | }{$post} that must be used | |
309 | .note = closures are lazy and do nothing unless called | |
310 | ||
f2b60f7d | 311 | lint_unused_generator = |
064997fb FG |
312 | unused {$pre}{$count -> |
313 | [one] generator | |
314 | *[other] generator | |
315 | }{$post} that must be used | |
316 | .note = generators are lazy and do nothing unless resumed | |
317 | ||
f2b60f7d | 318 | lint_unused_def = unused {$pre}`{$def}`{$post} that must be used |
9ffffee4 | 319 | .suggestion = use `let _ = ...` to ignore the resulting value |
064997fb | 320 | |
f2b60f7d | 321 | lint_path_statement_drop = path statement drops value |
064997fb FG |
322 | .suggestion = use `drop` to clarify the intent |
323 | ||
f2b60f7d | 324 | lint_path_statement_no_effect = path statement with no effect |
064997fb | 325 | |
f2b60f7d | 326 | lint_unused_delim = unnecessary {$delim} around {$item} |
064997fb FG |
327 | .suggestion = remove these {$delim} |
328 | ||
f2b60f7d | 329 | lint_unused_import_braces = braces around {$node} is unnecessary |
064997fb | 330 | |
f2b60f7d FG |
331 | lint_unused_allocation = unnecessary allocation, use `&` instead |
332 | lint_unused_allocation_mut = unnecessary allocation, use `&mut` instead | |
064997fb | 333 | |
f2b60f7d | 334 | lint_builtin_while_true = denote infinite loops with `loop {"{"} ... {"}"}` |
064997fb FG |
335 | .suggestion = use `loop` |
336 | ||
f2b60f7d | 337 | lint_builtin_box_pointers = type uses owned (Box type) pointers: {$ty} |
064997fb | 338 | |
f2b60f7d | 339 | lint_builtin_non_shorthand_field_patterns = the `{$ident}:` in this pattern is redundant |
064997fb FG |
340 | .suggestion = use shorthand field pattern |
341 | ||
f2b60f7d | 342 | lint_builtin_overridden_symbol_name = |
064997fb FG |
343 | the linker's behavior with multiple libraries exporting duplicate symbol names is undefined and Rust cannot provide guarantees when you manually override them |
344 | ||
f2b60f7d | 345 | lint_builtin_overridden_symbol_section = |
064997fb FG |
346 | the program's behavior with overridden link sections on items is unpredictable and Rust cannot provide guarantees when you manually override them |
347 | ||
f2b60f7d | 348 | lint_builtin_allow_internal_unsafe = |
064997fb FG |
349 | `allow_internal_unsafe` allows defining macros using unsafe without triggering the `unsafe_code` lint at their call site |
350 | ||
f2b60f7d | 351 | lint_builtin_unsafe_block = usage of an `unsafe` block |
064997fb | 352 | |
f2b60f7d | 353 | lint_builtin_unsafe_trait = declaration of an `unsafe` trait |
064997fb | 354 | |
f2b60f7d | 355 | lint_builtin_unsafe_impl = implementation of an `unsafe` trait |
064997fb | 356 | |
f2b60f7d FG |
357 | lint_builtin_no_mangle_fn = declaration of a `no_mangle` function |
358 | lint_builtin_export_name_fn = declaration of a function with `export_name` | |
359 | lint_builtin_link_section_fn = declaration of a function with `link_section` | |
064997fb | 360 | |
f2b60f7d FG |
361 | lint_builtin_no_mangle_static = declaration of a `no_mangle` static |
362 | lint_builtin_export_name_static = declaration of a static with `export_name` | |
363 | lint_builtin_link_section_static = declaration of a static with `link_section` | |
064997fb | 364 | |
f2b60f7d FG |
365 | lint_builtin_no_mangle_method = declaration of a `no_mangle` method |
366 | lint_builtin_export_name_method = declaration of a method with `export_name` | |
064997fb | 367 | |
f2b60f7d FG |
368 | lint_builtin_decl_unsafe_fn = declaration of an `unsafe` function |
369 | lint_builtin_decl_unsafe_method = declaration of an `unsafe` method | |
370 | lint_builtin_impl_unsafe_method = implementation of an `unsafe` method | |
064997fb | 371 | |
f2b60f7d | 372 | lint_builtin_missing_doc = missing documentation for {$article} {$desc} |
064997fb | 373 | |
f2b60f7d | 374 | lint_builtin_missing_copy_impl = type could implement `Copy`; consider adding `impl Copy` |
064997fb | 375 | |
f2b60f7d | 376 | lint_builtin_missing_debug_impl = |
064997fb FG |
377 | type does not implement `{$debug}`; consider adding `#[derive(Debug)]` or a manual implementation |
378 | ||
f2b60f7d | 379 | lint_builtin_anonymous_params = anonymous parameters are deprecated and will be removed in the next edition |
064997fb FG |
380 | .suggestion = try naming the parameter or explicitly ignoring it |
381 | ||
f2b60f7d | 382 | lint_builtin_deprecated_attr_link = use of deprecated attribute `{$name}`: {$reason}. See {$link} |
9c376795 FG |
383 | .msg_suggestion = {$msg} |
384 | .default_suggestion = remove this attribute | |
f2b60f7d FG |
385 | lint_builtin_deprecated_attr_used = use of deprecated attribute `{$name}`: no longer used. |
386 | lint_builtin_deprecated_attr_default_suggestion = remove this attribute | |
064997fb | 387 | |
f2b60f7d | 388 | lint_builtin_unused_doc_comment = unused doc comment |
064997fb | 389 | .label = rustdoc does not generate documentation for {$kind} |
f2b60f7d FG |
390 | .plain_help = use `//` for a plain comment |
391 | .block_help = use `/* */` for a plain comment | |
064997fb | 392 | |
f2b60f7d | 393 | lint_builtin_no_mangle_generic = functions generic over types or consts must be mangled |
064997fb FG |
394 | .suggestion = remove this attribute |
395 | ||
f2b60f7d | 396 | lint_builtin_const_no_mangle = const items should never be `#[no_mangle]` |
064997fb FG |
397 | .suggestion = try a static value |
398 | ||
f2b60f7d | 399 | lint_builtin_mutable_transmutes = |
064997fb FG |
400 | transmuting &T to &mut T is undefined behavior, even if the reference is unused, consider instead using an UnsafeCell |
401 | ||
f2b60f7d | 402 | lint_builtin_unstable_features = unstable feature |
064997fb | 403 | |
487cf647 FG |
404 | lint_ungated_async_fn_track_caller = `#[track_caller]` on async functions is a no-op |
405 | .label = this function will not propagate the caller location | |
406 | ||
f2b60f7d | 407 | lint_builtin_unreachable_pub = unreachable `pub` {$what} |
064997fb FG |
408 | .suggestion = consider restricting its visibility |
409 | .help = or consider exporting it for use by other crates | |
410 | ||
f2b60f7d FG |
411 | lint_builtin_unexpected_cli_config_name = unexpected `{$name}` as condition name |
412 | .help = was set with `--cfg` but isn't in the `--check-cfg` expected names | |
064997fb | 413 | |
f2b60f7d FG |
414 | lint_builtin_unexpected_cli_config_value = unexpected condition value `{$value}` for condition name `{$name}` |
415 | .help = was set with `--cfg` but isn't in the `--check-cfg` expected values | |
416 | ||
417 | lint_builtin_type_alias_bounds_help = use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases | |
418 | ||
419 | lint_builtin_type_alias_where_clause = where clauses are not enforced in type aliases | |
064997fb FG |
420 | .suggestion = the clause will not be checked when the type alias is used, and should be removed |
421 | ||
f2b60f7d | 422 | lint_builtin_type_alias_generic_bounds = bounds on generic parameters are not enforced in type aliases |
064997fb FG |
423 | .suggestion = the bound will not be checked when the type alias is used, and should be removed |
424 | ||
f2b60f7d | 425 | lint_builtin_trivial_bounds = {$predicate_kind_name} bound {$predicate} does not depend on any type or lifetime parameters |
064997fb | 426 | |
f2b60f7d | 427 | lint_builtin_ellipsis_inclusive_range_patterns = `...` range patterns are deprecated |
064997fb FG |
428 | .suggestion = use `..=` for an inclusive range |
429 | ||
f2b60f7d | 430 | lint_builtin_unnameable_test_items = cannot test inner items |
064997fb | 431 | |
f2b60f7d | 432 | lint_builtin_keyword_idents = `{$kw}` is a keyword in the {$next} edition |
064997fb FG |
433 | .suggestion = you can use a raw identifier to stay compatible |
434 | ||
f2b60f7d | 435 | lint_builtin_explicit_outlives = outlives requirements can be inferred |
064997fb FG |
436 | .suggestion = remove {$count -> |
437 | [one] this bound | |
438 | *[other] these bounds | |
439 | } | |
440 | ||
f2b60f7d | 441 | lint_builtin_incomplete_features = the feature `{$name}` is incomplete and may not be safe to use and/or cause compiler crashes |
064997fb FG |
442 | .note = see issue #{$n} <https://github.com/rust-lang/rust/issues/{$n}> for more information |
443 | .help = consider using `min_{$name}` instead, which is more stable and complete | |
444 | ||
9c376795 FG |
445 | lint_builtin_unpermitted_type_init_zeroed = the type `{$ty}` does not permit zero-initialization |
446 | lint_builtin_unpermitted_type_init_unint = the type `{$ty}` does not permit being left uninitialized | |
447 | ||
448 | lint_builtin_unpermitted_type_init_label = this code causes undefined behavior when executed | |
449 | lint_builtin_unpermitted_type_init_label_suggestion = help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done | |
450 | ||
451 | lint_builtin_clashing_extern_same_name = `{$this}` redeclared with a different signature | |
f2b60f7d FG |
452 | .previous_decl_label = `{$orig}` previously declared here |
453 | .mismatch_label = this signature doesn't match the previous declaration | |
9c376795 | 454 | lint_builtin_clashing_extern_diff_name = `{$this}` redeclares `{$orig}` with a different signature |
f2b60f7d FG |
455 | .previous_decl_label = `{$orig}` previously declared here |
456 | .mismatch_label = this signature doesn't match the previous declaration | |
064997fb | 457 | |
f2b60f7d | 458 | lint_builtin_deref_nullptr = dereferencing a null pointer |
064997fb FG |
459 | .label = this code causes undefined behavior when executed |
460 | ||
f2b60f7d FG |
461 | lint_builtin_asm_labels = avoid using named labels in inline assembly |
462 | ||
9c376795 FG |
463 | lint_builtin_special_module_name_used_lib = found module declaration for lib.rs |
464 | .note = lib.rs is the root of this crate's library target | |
465 | .help = to refer to it from other targets, use the library's name as the path | |
466 | ||
467 | lint_builtin_special_module_name_used_main = found module declaration for main.rs | |
468 | .note = a binary crate cannot be used as library | |
469 | ||
470 | lint_supertrait_as_deref_target = `{$t}` implements `Deref` with supertrait `{$target_principal}` as target | |
471 | .label = target type is set here | |
472 | ||
f2b60f7d FG |
473 | lint_overruled_attribute = {$lint_level}({$lint_source}) incompatible with previous forbid |
474 | .label = overruled by previous forbid | |
475 | ||
476 | lint_default_source = `forbid` lint level is the default for {$id} | |
477 | ||
478 | lint_node_source = `forbid` level set here | |
479 | .note = {$reason} | |
480 | ||
481 | lint_command_line_source = `forbid` lint level was set on command line | |
482 | ||
483 | lint_malformed_attribute = malformed lint attribute input | |
484 | ||
485 | lint_bad_attribute_argument = bad attribute argument | |
486 | ||
487 | lint_reason_must_be_string_literal = reason must be a string literal | |
488 | ||
489 | lint_reason_must_come_last = reason in lint attribute must come last | |
490 | ||
491 | lint_unknown_tool_in_scoped_lint = unknown tool name `{$tool_name}` found in scoped lint: `{$tool_name}::{$lint_name}` | |
492 | .help = add `#![register_tool({$tool_name})]` to the crate root | |
493 | ||
494 | lint_unsupported_group = `{$lint_group}` lint group is not supported with ´--force-warn´ | |
495 | ||
496 | lint_requested_level = requested on the command line with `{$level} {$lint_name}` | |
497 | ||
498 | lint_check_name_unknown = unknown lint: `{$lint_name}` | |
499 | .help = did you mean: `{$suggestion}` | |
500 | ||
501 | lint_check_name_unknown_tool = unknown lint tool: `{$tool_name}` | |
502 | ||
503 | lint_check_name_warning = {$msg} | |
504 | ||
505 | lint_check_name_deprecated = lint name `{$lint_name}` is deprecated and does not have an effect anymore. Use: {$new_name} | |
2b03887a FG |
506 | |
507 | lint_opaque_hidden_inferred_bound = opaque type `{$ty}` does not satisfy its associated type bounds | |
508 | .specifically = this associated type bound is unsatisfied for `{$proj_ty}` | |
509 | ||
510 | lint_opaque_hidden_inferred_bound_sugg = add this bound |