small code cleanups

This commit is contained in:
Araq 2014-01-23 12:22:34 +01:00
commit 1465a7b080
3 changed files with 3 additions and 4 deletions

View file

@ -287,7 +287,6 @@ const
sfNoRoot* = sfBorrow # a local variable is provably no root so it doesn't sfNoRoot* = sfBorrow # a local variable is provably no root so it doesn't
# require RC ops # require RC ops
sfClosureCreated* = sfDiscriminant # for transf-lambdalifting interaction
const const
# getting ready for the future expr/stmt merge # getting ready for the future expr/stmt merge

View file

@ -422,7 +422,6 @@ proc transformOuterConv(n: PNode): PNode =
proc makeClosure(prc, env: PSym, info: TLineInfo): PNode = proc makeClosure(prc, env: PSym, info: TLineInfo): PNode =
result = newNodeIT(nkClosure, info, prc.typ) result = newNodeIT(nkClosure, info, prc.typ)
result.add(newSymNode(prc)) result.add(newSymNode(prc))
if prc.kind == skIterator: incl(prc.flags, sfClosureCreated)
if env == nil: if env == nil:
result.add(newNodeIT(nkNilLit, info, getSysType(tyNil))) result.add(newNodeIT(nkNilLit, info, getSysType(tyNil)))
else: else:
@ -776,8 +775,7 @@ proc liftIterSym*(n: PNode): PNode =
# transforms (iter) to (let env = newClosure[iter](); (iter, env)) # transforms (iter) to (let env = newClosure[iter](); (iter, env))
let iter = n.sym let iter = n.sym
assert iter.kind == skIterator assert iter.kind == skIterator
#if sfClosureCreated in iter.flags: return n
result = newNodeIT(nkStmtListExpr, n.info, n.typ) result = newNodeIT(nkStmtListExpr, n.info, n.typ)
var env = copySym(getHiddenParam(iter)) var env = copySym(getHiddenParam(iter))

View file

@ -74,6 +74,8 @@ Language Additions
evaluable at compile-time. evaluable at compile-time.
- Support for user-defined type classes has been added. - Support for user-defined type classes has been added.
- The *command syntax* is supported in a lot more contexts. - The *command syntax* is supported in a lot more contexts.
- Anonymous iterators are now supported and iterators can capture variables
of an outer proc.
Tools improvements Tools improvements