namespace Mono.CSharp
{
+ public enum SpecialConstraint
+ {
+ Constructor,
+ ReferenceType,
+ ValueType
+ }
+
public abstract class GenericConstraints
{
public abstract string TypeParameter {
}
}
- public abstract class Constraints : GenericConstraints
+ public class Constraints : GenericConstraints
{
+ public Constraints (string name, ArrayList constraints, Location loc)
+ {
+ }
+
public Constraints Clone ()
{
throw new NotImplementedException ();
}
- public abstract Location Location {
- get;
+ public Location Location {
+ get { return Location.Null; }
}
+
+ public override string TypeParameter {
+ get { throw new NotImplementedException (); }
+ }
- public abstract void VerifyClsCompliance ();
+ public void VerifyClsCompliance ()
+ {
+ }
}
public class TypeParameter : MemberCore, IMemberContainer
public class TypeArguments
{
+ public readonly Location Location;
+ ArrayList args;
+ //Type[] atypes;
+ int dimension;
+ //bool has_type_args;
+ //bool created;
+
public TypeArguments (Location loc)
{
- throw new NotImplementedException ();
+ args = new ArrayList ();
+ this.Location = loc;
}
-
+
public TypeArguments (Location loc, params Expression[] types)
{
- throw new NotImplementedException ();
- }
+ this.Location = loc;
+ this.args = new ArrayList (types);
+ }
+
+ public TypeArguments (int dimension, Location loc)
+ {
+ this.dimension = dimension;
+ this.Location = loc;
+ }
public void Add (Expression type)
{
- throw new NotImplementedException ();
}
public void Add (TypeArguments new_args)
{
- throw new NotImplementedException ();
}
public bool Resolve (IResolveContext ec)
}
public int Count {
- get { throw new NotImplementedException (); }
+ get {
+ if (dimension > 0)
+ return dimension;
+ else
+ return args.Count;
+ }
}
public bool IsUnbound {
throw new NotImplementedException ();
}
}
+
+ public class Nullable
+ {
+ public class NullCoalescingOperator : Expression
+ {
+ public NullCoalescingOperator (Expression left, Expression right, Location loc)
+ {
+ }
+
+ public override Expression DoResolve (EmitContext ec)
+ {
+ throw new NotImplementedException ();
+ }
+
+ public override void Emit (EmitContext ec)
+ {
+ throw new NotImplementedException ();
+ }
+ }
+
+ public class HasValue
+ {
+ public static Expression Create (Expression expr, EmitContext ec)
+ {
+ throw new NotImplementedException ();
+ }
+ }
+ }
}