summary refs log tree commit diff stats
path: root/tests/js/t16822.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/js/t16822.nim')
-rw-r--r--tests/js/t16822.nim29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/js/t16822.nim b/tests/js/t16822.nim
new file mode 100644
index 000000000..687d60be9
--- /dev/null
+++ b/tests/js/t16822.nim
@@ -0,0 +1,29 @@
+block: # bug #16822
+  var scores: seq[(set[char], int)] = @{{'/'} : 10}
+
+  var x1: set[char]
+  for item in items(scores):
+    x1 = item[0]
+
+  doAssert x1 == {'/'}
+
+  var x2: set[char]
+  for (chars, value) in items(scores):
+    x2 = chars
+
+  doAssert x2 == {'/'}
+
+block: # bug #14574
+  proc fn(): auto =
+    let a = @[("foo", (12, 13))]
+    for (k,v) in a:
+      return (k,v)
+  doAssert fn() == ("foo", (12, 13))
+
+block: # bug #14574
+  iterator fn[T](a:T): lent T = yield a
+  let a = (10, (11,))
+  proc bar(): auto =
+    for (x,y) in fn(a):
+      return (x,y)
+  doAssert bar() == (10, (11,))
\ No newline at end of file