fix complex typdesc iterators

This commit is contained in:
Jasper Jenkins
2019-05-08 14:29:42 -07:00
parent aa76857462
commit 55a3b51e40
2 changed files with 18 additions and 0 deletions

View File

@@ -560,6 +560,7 @@ type
proc putArgInto(arg: PNode, formal: PType): TPutArgInto =
# This analyses how to treat the mapping "formal <-> arg" in an
# inline context.
if formal.kind == tyTypeDesc: return paDirectMapping
if skipTypes(formal, abstractInst).kind in {tyOpenArray, tyVarargs}:
if arg.kind == nkStmtListExpr:
return paComplexOpenarray

View File

@@ -0,0 +1,17 @@
discard """
output: '''0
(id: 0)
@[]
[0, 0, 0]'''
"""
iterator foo*(T: typedesc): T =
var x: T
yield x
for a in foo(int): echo a
for b in foo(tuple[id: int]): echo b
for c in foo(seq[int]): echo c
type Generic[T] = T
for d in foo(Generic[array[0..2, int]]): echo d