Initial import of the Generic MCS tree.
[mono.git] / mcs / gmcs / generic.cs
index 4e66eb6cc66d66a6c1d82e53af4ba008a3d828ba..c35134d2329f4231cf0bc8b17f947c908f38e294 100644 (file)
@@ -36,6 +36,12 @@ namespace Mono.CSharp {
        //
        public class TypeParameterExpr : TypeExpr {
                string type_parameter;
+
+               public string Name {
+                       get {
+                               return type_parameter;
+                       }
+               }
                
                public TypeParameterExpr (string type_parameter, Location l)
                        : base (typeof (object), l)
@@ -53,4 +59,42 @@ namespace Mono.CSharp {
                        Report.Error (-203, loc, "Can not use type parameter as unamanged type");
                }
        }
+
+       public class TypeArguments {
+               ArrayList args;
+               
+               public TypeArguments ()
+               {
+                       args = new ArrayList ();
+               }
+
+               public void Add (Expression type)
+               {
+                       args.Add (type);
+               }
+       }
+       
+       public class ConstructedType : Expression {
+               Expression container_type;
+               string name;
+               TypeArguments args;
+               
+               public ConstructedType (Expression container_type, string name, TypeArguments args, Location l)
+               {
+                       loc = l;
+                       this.container_type = container_type;
+                       this.name = name;
+                       this.args = args;
+               }
+
+               public override Expression DoResolve (EmitContext ec)
+               {
+                       throw new Exception ("IMPLEMENT ME");
+               }
+
+               public override void Emit (EmitContext ec)
+               {
+                       throw new Exception ("IMPLEMENT ME");
+               }
+       }
 }