| mir_transform_arithmetic_overflow = this arithmetic operation will overflow |
| mir_transform_const_defined_here = `const` item defined here |
| |
| mir_transform_const_modify = attempting to modify a `const` item |
| .note = each usage of a `const` item creates a new temporary; the original `const` item will not be modified |
| |
| mir_transform_const_mut_borrow = taking a mutable reference to a `const` item |
| .note = each usage of a `const` item creates a new temporary |
| .note2 = the mutable reference will refer to this temporary, not the original `const` item |
| .note3 = mutable reference created due to call to this method |
| |
| mir_transform_ffi_unwind_call = call to {$foreign -> |
| [true] foreign function |
| *[false] function pointer |
| } with FFI-unwind ABI |
| |
| mir_transform_fn_item_ref = taking a reference to a function item does not give a function pointer |
| .suggestion = cast `{$ident}` to obtain a function pointer |
| |
| mir_transform_must_not_suspend = {$pre}`{$def_path}`{$post} held across a suspend point, but should not be |
| .label = the value is held across this suspend point |
| .note = {$reason} |
| .help = consider using a block (`{"{ ... }"}`) to shrink the value's scope, ending before the suspend point |
| mir_transform_operation_will_panic = this operation will panic at runtime |
| |
| mir_transform_unaligned_packed_ref = reference to packed field is unaligned |
| .note = packed structs are only aligned by one byte, and many modern architectures penalize unaligned field accesses |
| .note_ub = creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) |
| .help = copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers) |