summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2020-09-21 12:35:23 +0200
committerGitHub <noreply@github.com>2020-09-21 12:35:23 +0200
commitc2434d939e193c066fad1eaefcba486dc0af6087 (patch)
tree7cc32ca39227518724ffc242c4d6ccb6c0456d91
parent0a1e4cad7fc6149d168ecaa06bd613b64fc704fb (diff)
downloadNim-c2434d939e193c066fad1eaefcba486dc0af6087.tar.gz
fixes #15360 [backport:1.2] (#15378)
-rw-r--r--compiler/semstmts.nim2
-rw-r--r--tests/iter/titer.nim7
2 files changed, 8 insertions, 1 deletions
diff --git a/compiler/semstmts.nim b/compiler/semstmts.nim
index 14f08b4b3..e99ce8937 100644
--- a/compiler/semstmts.nim
+++ b/compiler/semstmts.nim
@@ -718,7 +718,7 @@ proc semForVars(c: PContext, n: PNode; flags: TExprFlags): PNode =
   result = n
   let iterBase = n[^2].typ
   var iter = skipTypes(iterBase, {tyGenericInst, tyAlias, tySink, tyOwned})
-  var iterAfterVarLent = iter.skipTypes({tyLent, tyVar})
+  var iterAfterVarLent = iter.skipTypes({tyGenericInst, tyAlias, tyLent, tyVar})
   # n.len == 3 means that there is one for loop variable
   # and thus no tuple unpacking:
   if iterAfterVarLent.kind != tyTuple or n.len == 3:
diff --git a/tests/iter/titer.nim b/tests/iter/titer.nim
index 22be1bad5..8e1c13e82 100644
--- a/tests/iter/titer.nim
+++ b/tests/iter/titer.nim
@@ -55,3 +55,10 @@ const
 for i in 0..len(stringArray)-1:
   echo(stringArray[i])
 
+# bug #15360
+
+type Rule[T] = (int, T)
+
+var t: seq[Rule[int]]
+for (c, t) in t:
+  discard