summary refs log tree commit diff stats
path: root/tests/iter
diff options
context:
space:
mode:
authorYuriy Glukhov <yuriy.glukhov@gmail.com>2018-06-06 16:17:24 +0300
committerYuriy Glukhov <yuriy.glukhov@gmail.com>2018-06-06 16:35:40 +0300
commit0ec2b33c50bf96e2b9f164fd8d44fe04fa76de52 (patch)
tree7db9a041e51164a1b82ceeec929202baf75e8832 /tests/iter
parente957d369b17cfb3532e2fe2aadfcde2bd3a0f11c (diff)
downloadNim-0ec2b33c50bf96e2b9f164fd8d44fe04fa76de52.tar.gz
Fixed yield in dotExpr and nkOfBranch lowering. Closes #7969.
Diffstat (limited to 'tests/iter')
-rw-r--r--tests/iter/tyieldintry.nim24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/iter/tyieldintry.nim b/tests/iter/tyieldintry.nim
index 31ec65a83..c9e5843b8 100644
--- a/tests/iter/tyieldintry.nim
+++ b/tests/iter/tyieldintry.nim
@@ -368,5 +368,29 @@ block: # Short cirquits
 
   test(it, 1, 0, 0)
 
+block: #7969
+  type
+    SomeObj = object
+      id: int
+
+  iterator it(): int {.closure.} =
+    template yieldAndSomeObj: SomeObj =
+      var s: SomeObj
+      s.id = 2
+      yield 1
+      s
+
+    checkpoint(yieldAndSomeObj().id)
+
+    var i = 5
+    case i
+    of 0:
+      checkpoint(123)
+    of 1, 2, 5:
+      checkpoint(3)
+    else:
+      checkpoint(123)
+
+  test(it, 1, 2, 3)
 
 echo "ok"