fixes #2752
This commit is contained in:
parent
f8bababa2a
commit
35f8cc0bdd
3 changed files with 31 additions and 7 deletions
27
tests/generics/tdont_use_inner_scope.nim
Normal file
27
tests/generics/tdont_use_inner_scope.nim
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
|
||||
# bug #2752
|
||||
|
||||
import future, sequtils
|
||||
|
||||
proc myFilter[T](it: (iterator(): T), f: (proc(anything: T):bool)): (iterator(): T) =
|
||||
iterator aNameWhichWillConflict(): T {.closure.}=
|
||||
for x in it():
|
||||
if f(x):
|
||||
yield x
|
||||
result = aNameWhichWillConflict
|
||||
|
||||
|
||||
iterator testIt():int {.closure.}=
|
||||
yield -1
|
||||
yield 2
|
||||
|
||||
#let unusedVariable = myFilter(testIt, (x: int) => x > 0)
|
||||
|
||||
proc onlyPos(it: (iterator(): int)): (iterator(): int)=
|
||||
iterator aNameWhichWillConflict(): int {.closure.}=
|
||||
var filtered = onlyPos(myFilter(it, (x:int) => x > 0))
|
||||
for x in filtered():
|
||||
yield x
|
||||
result = aNameWhichWillConflict
|
||||
|
||||
let x = onlyPos(testIt)
|
||||
Loading…
Add table
Add a link
Reference in a new issue