{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreibyhxt5cya4vx2o2joxxnahwd6fxh2g7vtj5u3lozxgzzjz6twzfe",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mgwpyoht5vq2"
  },
  "path": "/t/introduce-a-way-to-construct-range-from-start-length/24073#post_18",
  "publishedAt": "2026-03-13T04:01:24.000Z",
  "site": "https://internals.rust-lang.org",
  "tags": [
    "doesn’t actually parse"
  ],
  "textContent": "toc:\n\n>\n>     (start..)[..count]\n>\n\nI think this is impossible, since indexing operator can only return values in places that already exist, given the signature\n\n\n    fn index(&self, index: Idx) -> &Self::Output;\n\n\n(note the connected lifetime of `&Self::Output` to `&self` from elision)\n\nand `(start..)[..count]` would then desugar to `*Index::index(&(start..), ..count))`. But `start..` of course does _not_ happen to already contain the result of calculating `start..start+count` (for every possible value of `count`) inside of it\n\nCodesInChaos:\n\n> However it's still ambiguous with `a.. + b`.\n\n`a.. + b` doesn’t actually parse successfully, since `+` has higher precedence than `..` - so the only place this sequence of tokens can currently come up is in macros that never end up parsing them as an expression at all.",
  "title": "Introduce a way to construct Range from start + length"
}