//
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)
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");
+ }
+ }
}