{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreibam2xpgdxickrbigxkes2vo2trlvz76kci5e5pzmmf2rosrtjqai",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mh4zh7vocab2"
  },
  "path": "/t/just-mut-alongside-let-mut/24084#post_3",
  "publishedAt": "2026-03-15T14:45:09.000Z",
  "site": "https://internals.rust-lang.org",
  "textContent": "Also note that `let mut` isn’t an atomic thing that can be shortened.\n\nInstead the sequence “`let mut`” appears in `let` statement containing `mut x`-style identifier pattern. The `mut` is part of the pattern.\n\n\n    let mut x = 123;\n\n\nis technically composed of `let`, followed by `mut x`, not `let mut` followed by `x`.\n\nLike, you could think of it as bracketing; `let (mut x)` not `(let mut) x`. [Note that `let (mut x) = 123;` is even valid Rust syntax.]\n\nHence, it’s also the case that\n\n\n    // error\n    let mut _ = 123;\n\n\nis illegal syntax, and\n\n\n    let (mut x, mut y) = (1, 2);\n\n\nis not written like this:\n\n\n    // error\n    let mut (x, y) = (1, 2);\n",
  "title": "Just `mut` alongside `let mut`"
}