{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreicyfimwxi5oslf6fcoc5fohpdlhwsoudwywiccbz322obkkjmsqry",
"uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mfooxsb2d2r2"
},
"path": "/t/method-auto-de-ref-and-lack-of-it-in-rfc-132-ufcs/24005#post_6",
"publishedAt": "2026-02-25T10:21:25.000Z",
"site": "https://internals.rust-lang.org",
"tags": [
"Played with your example"
],
"textContent": "What I was thinking is:\n\n * The full method resolution\n * Only recievers\n * Probably going to require the method being qualified, or just require it's a method, but maybe not the latter, because if it's supported in unqualified paths (e.g. `use Trait::method`) it doesn't make sense in similar-looking functions (e.g. `fn foo` in my playground link)\n * Manually enable by putting `autoref` (on second thoughts, `autoderef`? not sure of the exact syntax) before the value\n\n\n\nThat is, `<current ufcs syntax>::method(autoref x, ...)` behaves like `x.method(...)` and the only difference is method selection.\n\n* * *\n\nquinedot:\n\n> Some choices would change program semantics.\n\nPlayed with your example, you (and I, initially) seem to have made the mistake of forgetting to add `&` in `Foo::foo(var)`, making it infer `&Self = &mut String` ⇒ `Self = String`.",
"title": "Method auto-(de)ref (and lack of it) in RFC 132 ufcs"
}