Merge pull request #4648 from endragor/remove-gensym-pragma

Removed the use of .gensym pragma from stdlib templates
This commit is contained in:
Andreas Rumpf 2016-08-23 14:36:49 +02:00 • committed by GitHub
commit 605ff68839
2 changed files with 9 additions and 9 deletions

View file

@ -231,7 +231,7 @@ template sortedByIt*(seq1, op: untyped): untyped =
## ##
## echo people.sortedByIt((it.age, it.name)) ## echo people.sortedByIt((it.age, it.name))
## ##
var result {.gensym.} = sorted(seq1, proc(x, y: type(seq1[0])): int = var result = sorted(seq1, proc(x, y: type(seq1[0])): int =
var it {.inject.} = x var it {.inject.} = x
let a = op let a = op
it = y it = y

View file

@ -371,7 +371,7 @@ template filterIt*(seq1, pred: untyped): untyped =
## notAcceptable = filterIt(temperatures, it > 50 or it < -10) ## notAcceptable = filterIt(temperatures, it > 50 or it < -10)
## assert acceptable == @[-2.0, 24.5, 44.31] ## assert acceptable == @[-2.0, 24.5, 44.31]
## assert notAcceptable == @[-272.15, 99.9, -113.44] ## assert notAcceptable == @[-272.15, 99.9, -113.44]
var result {.gensym.} = newSeq[type(seq1[0])]() var result = newSeq[type(seq1[0])]()
for it {.inject.} in items(seq1): for it {.inject.} in items(seq1):
if pred: result.add(it) if pred: result.add(it)
result result
@ -420,7 +420,7 @@ template allIt*(seq1, pred: untyped): bool =
## let numbers = @[1, 4, 5, 8, 9, 7, 4] ## let numbers = @[1, 4, 5, 8, 9, 7, 4]
## assert allIt(numbers, it < 10) == true ## assert allIt(numbers, it < 10) == true
## assert allIt(numbers, it < 9) == false ## assert allIt(numbers, it < 9) == false
var result {.gensym.} = true var result = true
for it {.inject.} in items(seq1): for it {.inject.} in items(seq1):
if not pred: if not pred:
result = false result = false
@ -451,7 +451,7 @@ template anyIt*(seq1, pred: untyped): bool =
## let numbers = @[1, 4, 5, 8, 9, 7, 4] ## let numbers = @[1, 4, 5, 8, 9, 7, 4]
## assert anyIt(numbers, it > 8) == true ## assert anyIt(numbers, it > 8) == true
## assert anyIt(numbers, it > 9) == false ## assert anyIt(numbers, it > 9) == false
var result {.gensym.} = false var result = false
for it {.inject.} in items(seq1): for it {.inject.} in items(seq1):
if pred: if pred:
result = true result = true
@ -512,7 +512,7 @@ template foldl*(sequence, operation: untyped): untyped =
## assert concatenation == "nimiscool" ## assert concatenation == "nimiscool"
let s = sequence let s = sequence
assert s.len > 0, "Can't fold empty sequences" assert s.len > 0, "Can't fold empty sequences"
var result {.gensym.}: type(s[0]) var result: type(s[0])
result = s[0] result = s[0]
for i in 1..<s.len: for i in 1..<s.len:
let let
@ -537,7 +537,7 @@ template foldl*(sequence, operation, first): untyped =
## numbers = @[0, 8, 1, 5] ## numbers = @[0, 8, 1, 5]
## digits = foldl(numbers, a & (chr(b + ord('0'))), "") ## digits = foldl(numbers, a & (chr(b + ord('0'))), "")
## assert digits == "0815" ## assert digits == "0815"
var result {.gensym.}: type(first) var result: type(first)
result = first result = first
for x in items(sequence): for x in items(sequence):
let let
@ -574,7 +574,7 @@ template foldr*(sequence, operation: untyped): untyped =
## assert concatenation == "nimiscool" ## assert concatenation == "nimiscool"
let s = sequence let s = sequence
assert s.len > 0, "Can't fold empty sequences" assert s.len > 0, "Can't fold empty sequences"
var result {.gensym.}: type(s[0]) var result: type(s[0])
result = sequence[s.len - 1] result = sequence[s.len - 1]
for i in countdown(s.len - 2, 0): for i in countdown(s.len - 2, 0):
let let
@ -598,7 +598,7 @@ template mapIt*(seq1, typ, op: untyped): untyped =
## assert strings == @["4", "8", "12", "16"] ## assert strings == @["4", "8", "12", "16"]
## **Deprecated since version 0.12.0:** Use the ``mapIt(seq1, op)`` ## **Deprecated since version 0.12.0:** Use the ``mapIt(seq1, op)``
## template instead. ## template instead.
var result {.gensym.}: seq[typ] = @[] var result: seq[typ] = @[]
for it {.inject.} in items(seq1): for it {.inject.} in items(seq1):
result.add(op) result.add(op)
result result
@ -662,7 +662,7 @@ template newSeqWith*(len: int, init: untyped): untyped =
## import random ## import random
## var seqRand = newSeqWith(20, random(10)) ## var seqRand = newSeqWith(20, random(10))
## echo seqRand ## echo seqRand
var result {.gensym.} = newSeq[type(init)](len) var result = newSeq[type(init)](len)
for i in 0 .. <len: for i in 0 .. <len:
result[i] = init result[i] = init
result result