mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-19 05:50:30 +00:00
fixes #6992
This commit is contained in:
@@ -692,6 +692,12 @@ proc implicitIterator(c: PContext, it: string, arg: PNode): PNode =
|
||||
result.add arg
|
||||
result = semExprNoDeref(c, result, {efWantIterator})
|
||||
|
||||
proc isTrivalStmtExpr(n: PNode): bool =
|
||||
for i in 0 .. n.len-2:
|
||||
if n[i].kind notin {nkEmpty, nkCommentStmt}:
|
||||
return false
|
||||
result = true
|
||||
|
||||
proc semFor(c: PContext, n: PNode): PNode =
|
||||
result = n
|
||||
checkMinSonsLen(n, 3)
|
||||
@@ -699,6 +705,9 @@ proc semFor(c: PContext, n: PNode): PNode =
|
||||
openScope(c)
|
||||
n.sons[length-2] = semExprNoDeref(c, n.sons[length-2], {efWantIterator})
|
||||
var call = n.sons[length-2]
|
||||
if call.kind == nkStmtListExpr and isTrivalStmtExpr(call):
|
||||
call = call.lastSon
|
||||
n.sons[length-2] = call
|
||||
let isCallExpr = call.kind in nkCallKinds
|
||||
if isCallExpr and call[0].kind == nkSym and
|
||||
call[0].sym.magic in {mFields, mFieldPairs, mOmpParFor}:
|
||||
|
||||
@@ -2,7 +2,12 @@ discard """
|
||||
output: '''true
|
||||
3
|
||||
4
|
||||
5'''
|
||||
5
|
||||
0
|
||||
1
|
||||
2
|
||||
3
|
||||
4'''
|
||||
cmd: "nim $target --gc:none --hints:on --warnings:off $options $file"
|
||||
"""
|
||||
|
||||
@@ -55,3 +60,7 @@ echo "true"
|
||||
# bug #1560
|
||||
for i in @[3, 4, 5]:
|
||||
echo($i)
|
||||
|
||||
# bug #6992
|
||||
for i in 0 ..< 5u32:
|
||||
echo i
|
||||
|
||||
Reference in New Issue
Block a user