From c2434d939e193c066fad1eaefcba486dc0af6087 Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Mon, 21 Sep 2020 12:35:23 +0200 Subject: fixes #15360 [backport:1.2] (#15378) --- compiler/semstmts.nim | 2 +- tests/iter/titer.nim | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) 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 -- cgit 1.4.1-2-gfad0