'[]' can now be used for iterators (#18814)

This commit is contained in:
Jason Beetham
2021-09-06 07:30:49 -06:00
committed by GitHub
parent cc5422ae50
commit 90bfd34250
2 changed files with 15 additions and 1 deletions

View File

@@ -1596,7 +1596,7 @@ proc semArrayAccess(c: PContext, n: PNode, flags: TExprFlags): PNode =
result = semSubscript(c, n, flags)
if result == nil:
# overloaded [] operator:
result = semExpr(c, buildOverloadedSubscripts(n, getIdent(c.cache, "[]")))
result = semExpr(c, buildOverloadedSubscripts(n, getIdent(c.cache, "[]")), flags)
proc propertyWriteAccess(c: PContext, n, nOrig, a: PNode): PNode =
var id = considerQuotedIdent(c, a[1], a)

14
tests/iter/tarrayiter.nim Normal file
View File

@@ -0,0 +1,14 @@
block:
iterator `[]`(a: int, r: int): int =
for q in 0 .. r:
yield a
for val in 10[2]: discard
type Custom = distinct string
iterator `[]`(a: Custom, r: int): char =
for q in 0 .. r:
yield a.string[q]
for val in Custom("test")[2]: discard