diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2015-09-14 17:32:14 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2015-09-14 17:32:14 +0200 |
commit | 272df1e52ffd0f337adb54cc266f18619deb130f (patch) | |
tree | 3e2e5f9e2aad91dc5b61ebd24e22436b72290697 | |
parent | bbe4afc49bcab87cf6abda4fedb49e1010e29b12 (diff) | |
parent | aeff57627b6165f3ba75d10f2aba5147fb686e8d (diff) | |
download | Nim-272df1e52ffd0f337adb54cc266f18619deb130f.tar.gz |
Merge pull request #3325 from yglukhov/js-generic-types-fix
Fixed JS gen for generic array types.
-rw-r--r-- | compiler/jstypes.nim | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/compiler/jstypes.nim b/compiler/jstypes.nim index 851938327..832d9996c 100644 --- a/compiler/jstypes.nim +++ b/compiler/jstypes.nim @@ -116,8 +116,7 @@ proc genEnumInfo(p: PProc, typ: PType, name: Rope) = [name, genTypeInfo(p, typ.sons[0])]) proc genTypeInfo(p: PProc, typ: PType): Rope = - var t = typ - if t.kind == tyGenericInst: t = lastSon(t) + let t = typ.skipTypes({tyGenericInst}) result = "NTI$1" % [rope(t.id)] if containsOrIncl(p.g.typeInfoGenerated, t.id): return case t.kind @@ -141,7 +140,7 @@ proc genTypeInfo(p: PProc, typ: PType): Rope = [result, rope(ord(t.kind))] prepend(p.g.typeInfo, s) addf(p.g.typeInfo, "$1.base = $2;$n", - [result, genTypeInfo(p, typ.sons[1])]) + [result, genTypeInfo(p, t.sons[1])]) of tyEnum: genEnumInfo(p, t, result) of tyObject: genObjectInfo(p, t, result) of tyTuple: genTupleInfo(p, t, result) |