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
parent 73387e89a0
commit e2567e2e03
2 changed files with 11 additions and 2 deletions

View File

@@ -218,8 +218,13 @@ proc mapTypeToAstX(t: PType; info: TLineInfo;
of tyTuple:
if inst:
result = newNodeX(nkTupleTy)
for s in t.n.sons:
result.add newIdentDefs(s)
# 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:
result.add newIdentDefs(s)
else:
result = mapTypeToBracket("tuple", mTuple, t, info)
of tySet: result = mapTypeToBracket("set", mSet, t, info)

View File

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