2 // generic.cs: Support classes for generics to reduce differences from GMCS
5 // Raja R Harinath <rharinath@novell.com>
7 // (C) 2006 Novell, Inc.
10 using System.Reflection;
11 using System.Reflection.Emit;
12 using System.Collections;
16 public abstract class GenericConstraints
18 public abstract string TypeParameter {
22 public bool IsReferenceType {
23 get { throw new NotSupportedException (); }
27 public abstract class Constraints : GenericConstraints
29 public Constraints Clone ()
31 throw new NotImplementedException ();
34 public abstract Location Location {
38 public abstract void VerifyClsCompliance ();
41 public class TypeParameter : MemberCore, IMemberContainer
43 public TypeParameter (DeclSpace parent, DeclSpace decl, string name,
44 Constraints constraints, Attributes attrs, Location loc)
45 : base (parent, new MemberName (name, loc), attrs)
47 throw new NotImplementedException ();
50 public static string GetSignatureForError (TypeParameter[] tp)
52 throw new NotImplementedException ();
59 public override bool Define ()
64 public override void ApplyAttributeBuilder (Attribute a,
65 CustomAttributeBuilder cb)
67 throw new NotImplementedException ();
70 public override AttributeTargets AttributeTargets {
71 get { throw new NotImplementedException (); }
74 public override string[] ValidAttributeTargets {
76 return new string [] { "type parameter" };
80 public Constraints Constraints {
86 public override string DocCommentHeader {
87 get { throw new NotImplementedException (); }
90 public bool Resolve (DeclSpace ds)
92 throw new NotImplementedException ();
95 public bool DefineType (IResolveContext ec)
97 throw new NotImplementedException ();
100 public bool DefineType (IResolveContext ec, MethodBuilder builder,
101 MethodInfo implementing, bool is_override)
103 throw new NotImplementedException ();
106 public bool CheckDependencies ()
108 throw new NotImplementedException ();
111 public bool UpdateConstraints (IResolveContext ec, Constraints new_constraints)
113 throw new NotImplementedException ();
120 Type IMemberContainer.Type {
121 get { throw new NotImplementedException (); }
124 string IMemberContainer.Name {
125 get { throw new NotImplementedException (); }
128 MemberCache IMemberContainer.BaseCache {
129 get { throw new NotImplementedException (); }
132 bool IMemberContainer.IsInterface {
133 get { throw new NotImplementedException (); }
136 MemberList IMemberContainer.GetMembers (MemberTypes mt, BindingFlags bf)
138 throw new NotImplementedException ();
141 MemberCache IMemberContainer.MemberCache {
142 get { throw new NotImplementedException (); }
145 public bool IsSubclassOf (Type t)
147 throw new NotImplementedException ();
150 public MemberList FindMembers (MemberTypes mt, BindingFlags bf,
151 MemberFilter filter, object criteria)
153 throw new NotImplementedException ();
157 public class TypeParameterExpr : TypeExpr
159 public override string Name {
160 get { throw new NotImplementedException (); }
163 public override string FullName {
164 get { throw new NotImplementedException (); }
167 public TypeParameterExpr (TypeParameter type_parameter, Location loc)
169 throw new NotImplementedException ();
172 protected override TypeExpr DoResolveAsTypeStep (IResolveContext ec)
178 public class TypeParameterName : SimpleName
180 Attributes attributes;
182 public TypeParameterName (string name, Attributes attrs, Location loc)
188 public Attributes OptAttributes {
195 public class ConstructedType : TypeExpr
197 public ConstructedType (FullNamedExpression fname, TypeArguments args, Location l)
199 throw new NotImplementedException ();
202 public ConstructedType (Type t, TypeParameter[] type_params, Location l)
204 throw new NotImplementedException ();
207 public ConstructedType (Type t, TypeArguments args, Location l)
209 throw new NotImplementedException ();
212 public override string Name {
213 get { throw new NotImplementedException (); }
216 public override string FullName {
217 get { throw new NotImplementedException (); }
220 protected override TypeExpr DoResolveAsTypeStep (IResolveContext ec)
222 throw new NotImplementedException ();
225 public bool CheckConstraints (IResolveContext ec)
227 throw new NotImplementedException ();
231 public class GenericMethod : DeclSpace
233 public GenericMethod (NamespaceEntry ns, DeclSpace parent, MemberName name,
234 Expression return_type, Parameters parameters)
235 : base (ns, parent, name, null)
237 throw new NotImplementedException ();
240 public override TypeBuilder DefineType ()
242 throw new NotImplementedException ();
245 public override bool Define ()
247 throw new NotImplementedException ();
250 public bool DefineType (EmitContext ec, MethodBuilder mb,
251 MethodInfo implementing, bool is_override)
253 throw new NotImplementedException ();
256 public void EmitAttributes ()
258 throw new NotImplementedException ();
261 public override bool DefineMembers ()
263 throw new NotImplementedException ();
266 public override MemberList FindMembers (MemberTypes mt, BindingFlags bf,
267 MemberFilter filter, object criteria)
269 throw new NotImplementedException ();
272 public override MemberCache MemberCache {
273 get { throw new NotImplementedException (); }
276 public override AttributeTargets AttributeTargets {
278 return AttributeTargets.Method | AttributeTargets.ReturnValue;
282 public override string DocCommentHeader {
286 public new void VerifyClsCompliance ()
288 throw new NotImplementedException ();
292 public class TypeArguments
294 public TypeArguments (Location loc)
296 throw new NotImplementedException ();
299 public void Add (Expression type)
301 throw new NotImplementedException ();
304 public void Add (TypeArguments new_args)
306 throw new NotImplementedException ();
309 public bool Resolve (IResolveContext ec)
311 throw new NotImplementedException ();
314 public Type[] Arguments {
315 get { throw new NotImplementedException (); }
319 get { throw new NotImplementedException (); }
322 public bool IsUnbound {
323 get { throw new NotImplementedException (); }
326 public TypeParameterName[] GetDeclarations ()
328 throw new NotImplementedException ();
331 public TypeArguments Clone ()
333 throw new NotImplementedException ();