diff --git a/compiler/semfold.nim b/compiler/semfold.nim index 00b40f5727..451d675188 100644 --- a/compiler/semfold.nim +++ b/compiler/semfold.nim @@ -471,19 +471,20 @@ proc foldArrayAccess(m: PSym, n: PNode; idgen: IdGenerator; g: ModuleGraph): PNo if result.kind == nkExprColonExpr: result = result[1] else: result = nil - localError(g.config, n.info, formatErrorIndexBound(idx, x.len-1) & $n) + #localError(g.config, n.info, formatErrorIndexBound(idx, x.len-1) & $n) of nkBracket: idx -= toInt64(firstOrd(g.config, x.typ)) if idx >= 0 and idx < x.len: result = x[int(idx)] else: result = nil - localError(g.config, n.info, formatErrorIndexBound(idx, x.len-1) & $n) + #localError(g.config, n.info, formatErrorIndexBound(idx, x.len-1) & $n) of nkStrLit..nkTripleStrLit: result = newNodeIT(nkCharLit, x.info, n.typ) if idx >= 0 and idx < x.strVal.len: result.intVal = ord(x.strVal[int(idx)]) else: - localError(g.config, n.info, formatErrorIndexBound(idx, x.strVal.len-1) & $n) + result = nil + #localError(g.config, n.info, formatErrorIndexBound(idx, x.strVal.len-1) & $n) else: result = nil proc foldFieldAccess(m: PSym, n: PNode; idgen: IdGenerator; g: ModuleGraph): PNode = diff --git a/tests/controlflow/tcontrolflow.nim b/tests/controlflow/tcontrolflow.nim index dd21a2bb67..c2f34ce0e2 100644 --- a/tests/controlflow/tcontrolflow.nim +++ b/tests/controlflow/tcontrolflow.nim @@ -114,3 +114,10 @@ block named: # works if true: break named doAssert false, "not reached" + +block: + iterator p(a: openArray[char]): int = + if a.len != 0: + if a[0] != '/': + discard + for t in p(""): discard