rust/tests/ui/let-else
Esteban Küber 71b0755a98 Provide more context when mutably borrowing an imutable borrow
Point at statics and consts being mutable borrowed or written to:

```
error[E0594]: cannot assign to immutable static item `NUM`
  --> $DIR/E0594.rs:4:5
   |
LL | static NUM: i32 = 18;
   | --------------- this `static` cannot be written to
...
LL |     NUM = 20;
   |     ^^^^^^^^ cannot assign
```

Point at the expression that couldn't be mutably borrowed from a pattern:

```
error[E0596]: cannot borrow data in a `&` reference as mutable
  --> $DIR/mut-pattern-of-immutable-borrow.rs:19:14
   |
LL |     match &arg.field {
   |           ---------- this cannot be borrowed as mutable
LL |         Some(ref mut s) => s.push('a'),
   |              ^^^^^^^^^ cannot borrow as mutable
```
2025-11-09 22:14:48 +00:00
..
accidental-if.rs
accidental-if.stderr
const-fn.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-94176.rs
issue-94176.stderr
issue-99975.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-100103.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-102317.rs replace //@ compile-flags: --edition with //@ edition 2025-04-10 09:56:37 +02:00
let-else-allow-in-expr.rs
let-else-allow-in-expr.stderr
let-else-allow-unused.rs
let-else-allow-unused.stderr
let-else-binding-explicit-mut-annotated.rs
let-else-binding-explicit-mut-annotated.stderr
let-else-binding-explicit-mut-borrow.rs
let-else-binding-explicit-mut-borrow.stderr
let-else-binding-explicit-mut-pass.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-binding-explicit-mut.rs
let-else-binding-explicit-mut.stderr Provide more context when mutably borrowing an imutable borrow 2025-11-09 22:14:48 +00:00
let-else-binding-immutable.rs
let-else-binding-immutable.stderr Provide more context when mutably borrowing an imutable borrow 2025-11-09 22:14:48 +00:00
let-else-bindings.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-bool-binop-init.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-bool-binop-init.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-bool-binop-init.stderr
let-else-brace-before-else.fixed [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-brace-before-else.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-brace-before-else.stderr
let-else-check.rs
let-else-check.stderr
let-else-deref-coercion-annotated.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-deref-coercion.rs
let-else-deref-coercion.stderr Trim suggestion parts to the subset that is purely additive 2025-02-14 00:44:10 -08:00
let-else-destructuring.rs
let-else-destructuring.stderr
let-else-drop-order.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-drop-order.run.stdout
let-else-if.rs
let-else-if.stderr Reword suggestion message 2024-11-16 20:03:31 +00:00
let-else-irrefutable.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-irrefutable.stderr
let-else-missing-semicolon.rs
let-else-missing-semicolon.stderr
let-else-no-double-error.rs
let-else-no-double-error.stderr
let-else-non-copy.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-non-diverging.rs
let-else-non-diverging.stderr
let-else-ref-bindings-pass.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-ref-bindings.rs
let-else-ref-bindings.stderr
let-else-run-pass.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-scope.rs
let-else-scope.stderr
let-else-slicing-error.rs
let-else-slicing-error.stderr Tweak slice and as_deref suggestion span 2024-07-04 05:50:21 +00:00
let-else-source-expr-nomove-pass.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-temp-borrowck.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-temporary-lifetime.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
let-else-then-diverge.rs
let-else-then-diverge.stderr
let-else.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
uninitialized-refutable-let-issue-123844.rs Suppress erroneous suggestion 2024-04-12 17:45:15 +01:00
uninitialized-refutable-let-issue-123844.stderr Update tests for new TRPL chapter order 2024-11-23 08:57:25 -07:00