{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihuqidt6z3hprevnqh24o52xuoqdfdiisdb7gwzwqfsg76pzs3pnu",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mo73ltscmao2"
  },
  "path": "/t/named-impl-with-implementation-selection-variant/24374#post_11",
  "publishedAt": "2026-06-13T09:52:54.000Z",
  "site": "https://internals.rust-lang.org",
  "textContent": "viruscamp:\n\n>   * […] it breaks bin B\n>\n\n\nNo, it doesn't because `A::fn1();` in B won't try to resolve to A's implementation unless B explicitly imports `T1`.\n\n* * *\n\nEdit: The case that would break it here (or potentially silently change behaviour!) is if A added an associated function `fn1` on `A` directly.\nThis is usually considered acceptable in that the unqualified call in B is considered fragile.\n\nIt's better practice to qualify it as `::<A as T>::fn1()` there for such static calls. That's the reason why I think of \"extension traits\" that are intended to be called into statically without qualification as a bit sketchy sometimes.",
  "title": "Named impl with Implementation Selection Variant"
}