{
"$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"
}