{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreifeigi2pwbkqwpxhstrzakic7grvg76djf6fu5d3fwnoc7eoxx6de",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mgkqj7633pk2"
  },
  "path": "/t/idea-pre-rfc-null-free-pointer-and-zeroable-reference/23991?page=6#post_106",
  "publishedAt": "2026-03-07T22:18:31.000Z",
  "site": "https://internals.rust-lang.org",
  "tags": [
    "rust#138351"
  ],
  "textContent": "Fair, I withdraw the UB concern here; the remaining concerns still stand.\n\nCodesInChaos:\n\n> `Cell` and `MaybeUninit` don't have field projection support either, and those are _much_ more common.\n\n`Cell` exists to _hide_ references behind interior mutability; `MaybeUninit` exists to _hide_ uninitialised memory. Field projection is a nice-to-have feature, or even a soundness hazard for them - their purpose is fulfilled without field projection or aided by its absence. A zeroable reference is the opposite - transparent access to fields _is_ its entire purpose. Without field projection, it doesn't become verbose; it fails to be what it is.\n\nAnd looking at `replace_memory` in your `any_mem` sketch, that's the operation `ptr::replace` couldn't do soundly because it relies on `&mut *dst` internally (rust#138351). Your playground itself annotates `read_memory`/`write_memory` as \"needs compiler magic\" - doesn't that confirm the gap has to be closed below the library level?",
  "title": "Idea / Pre-RFC: Null-free pointer and Zeroable reference"
}