Fix sigsegv in getTypeImpl for unnamed tuple (#5440)

avoid sigsegv in getTypeImpl for unnamed tuple; fixes #4862
This commit is contained in:
Fabian Keller 2017-03-02 15:30:19 +01:00 • committed by Andreas Rumpf
commit e2567e2e03
2 changed files with 11 additions and 2 deletions

View file

@ -218,6 +218,11 @@ proc mapTypeToAstX(t: PType; info: TLineInfo;
of tyTuple: of tyTuple:
if inst: if inst:
result = newNodeX(nkTupleTy) result = newNodeX(nkTupleTy)
# only named tuples have a node, unnamed tuples don't
if t.n.isNil:
for subType in t.sons:
result.add mapTypeToAst(subType, info)
else:
for s in t.n.sons: for s in t.n.sons:
result.add newIdentDefs(s) result.add newIdentDefs(s)
else: else:

View file

@ -120,3 +120,7 @@ test(Tree):
right: ref Tree right: ref Tree
test(proc (a: int, b: Foo[2,float])) test(proc (a: int, b: Foo[2,float]))
test(proc (a: int, b: Foo[2,float]): Bar[3,int]) test(proc (a: int, b: Foo[2,float]): Bar[3,int])
# bug #4862
static:
discard typedesc[(int, int)].getTypeImpl