summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2015-09-14 17:32:14 +0200
committerAndreas Rumpf <rumpf_a@web.de>2015-09-14 17:32:14 +0200
commit272df1e52ffd0f337adb54cc266f18619deb130f (patch)
tree3e2e5f9e2aad91dc5b61ebd24e22436b72290697
parentbbe4afc49bcab87cf6abda4fedb49e1010e29b12 (diff)
parentaeff57627b6165f3ba75d10f2aba5147fb686e8d (diff)
downloadNim-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.nim5
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)