From 410fd1deae95ecc9fd146fc2c8e6cc0cd24bfee7 Mon Sep 17 00:00:00 2001 From: Yuriy Glukhov Date: Sat, 24 Nov 2018 11:50:48 +0200 Subject: Fixes 9716 [backport] (#9790) * reuse temporary variable * fixes #9716 [backport] * Declare local vars in safer place --- tests/iter/tyieldintry.nim | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'tests/iter') diff --git a/tests/iter/tyieldintry.nim b/tests/iter/tyieldintry.nim index ee2790e54..32eef494e 100644 --- a/tests/iter/tyieldintry.nim +++ b/tests/iter/tyieldintry.nim @@ -403,7 +403,7 @@ block: # yield in blockexpr test(it, 1, 2, 3) -block: #8851 +block: #8851 type Foo = ref object of RootObj template someFoo(): Foo = @@ -454,5 +454,18 @@ block: #9694 - yield in ObjConstr test(it, 1, 2) +block: #9716 + iterator it(): int {.closure.} = + var a = 0 + for i in 1 .. 3: + var a: int # Make sure the "local" var is reset + var b: string # ditto + yield 1 + a += 5 + b &= "hello" + doAssert(a == 5) + doAssert(b == "hello") + test(it, 1, 1, 1) + echo "ok" -- cgit 1.4.1-2-gfad0