{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreicx6456gzrrh4c5jrfnxwfptg7nfvqsylrmm4p724fhxf4ts75joe",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3meseluzosls2"
  },
  "path": "/t/method-auto-de-ref-and-lack-of-it-in-rfc-132-ufcs/24005#post_2",
  "publishedAt": "2026-02-14T05:44:59.000Z",
  "site": "https://internals.rust-lang.org",
  "textContent": "Hmm, RFC 132 explicitly says this:\n\n>   * It is sometimes desirable not to have autoderef:\n>   * For methods like `clone()` that apply to almost all types, it is convenient to be more specific about which precise type you want to clone. To get this right with autoderef, one must know the precise rules being used, which is contrary to the \"DWIM\" intention.\n>   * For types that implement `Deref<T>`, UFCS can be used to unambiguously differentiate between methods invoked on the smart pointer itself and methods invoked on its referent.\n>\n\n\nBecause the self parameter loses its magic in UFCS (because that’s what UFCS _means_), it would be extremely surprising for the first argument to auto-ref/deref, which doesn’t happen with non-method associated functions that are called identically.",
  "title": "Method auto-(de)ref (and lack of it) in RFC 132 ufcs"
}