changeset 254:eb6e3f1fbfee

- Removed typedef and created a proper TemplateArguments class.
author aziz
date Wed, 01 Aug 2007 19:10:01 +0000
parents 4279b638c63e
children 7ba0229af908
files trunk/src/Parser.d trunk/src/Types.d
diffstat 2 files changed, 17 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/trunk/src/Parser.d	Wed Aug 01 18:39:02 2007 +0000
+++ b/trunk/src/Parser.d	Wed Aug 01 19:10:01 2007 +0000
@@ -3382,7 +3382,8 @@
 
   TemplateArguments parseTemplateArguments()
   {
-    TemplateArguments args;
+    auto begin = token;
+    auto args = new TemplateArguments;
 
     require(T.LParen);
     if (token.type == T.RParen)
@@ -3416,6 +3417,7 @@
     } while (token.type == T.Comma)
 
     require(T.RParen);
+    set(args, begin);
     return args;
   }
 
--- a/trunk/src/Types.d	Wed Aug 01 18:39:02 2007 +0000
+++ b/trunk/src/Types.d	Wed Aug 01 19:10:01 2007 +0000
@@ -159,7 +159,20 @@
   }
 }
 
-typedef Object[] TemplateArguments;
+class TemplateArguments : Node
+{
+  Node[] args;
+
+  this()
+  {
+    super(NodeType.Other);
+  }
+
+  void opCatAssign(Node argument)
+  {
+    args ~= argument;
+  }
+}
 
 enum TID
 {