From bab74b6dce13f69b7f3017b27a472ba4a260c4bb Mon Sep 17 00:00:00 2001
From: dom96 <dominikpicheta@googlemail.com>
Date: Mon, 3 Jan 2011 23:19:15 +0000
Subject: Fixed a bug in typeToString with generics.

---
 rod/types.nim | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/rod/types.nim b/rod/types.nim
index ed9d5271a..32f9c7a94 100755
--- a/rod/types.nim
+++ b/rod/types.nim
@@ -430,8 +430,12 @@ proc TypeToString(typ: PType, prefer: TPreferedDesc = preferName): string =
   if (prefer == preferName) and (t.sym != nil): 
     return t.sym.Name.s
   case t.Kind
-  of tyGenericInst: 
-    result = typeToString(lastSon(t), prefer)
+  of tyGenericBody, tyGenericInst, tyGenericInvokation:
+    result = typeToString(t.sons[0]) & '['
+    for i in countup(1, sonsLen(t) -1 -ord(t.kind != tyGenericInvokation)):
+      if i > 1: add(result, ", ")
+      add(result, typeToString(t.sons[i]))
+    add(result, ']')
   of tyArray: 
     if t.sons[0].kind == tyRange: 
       result = "array[" & rangeToStr(t.sons[0].n) & ", " &
@@ -439,12 +443,6 @@ proc TypeToString(typ: PType, prefer: TPreferedDesc = preferName): string =
     else: 
       result = "array[" & typeToString(t.sons[0]) & ", " &
           typeToString(t.sons[1]) & ']'
-  of tyGenericInvokation, tyGenericBody: 
-    result = typeToString(t.sons[0]) & '['
-    for i in countup(1, sonsLen(t) - 1): 
-      if i > 1: add(result, ", ")
-      add(result, typeToString(t.sons[i]))
-    add(result, ']')
   of tyArrayConstr: 
     result = "Array constructor[" & rangeToStr(t.sons[0].n) & ", " &
         typeToString(t.sons[1]) & ']'
-- 
cgit 1.4.1-2-gfad0