System.Array.Copy (interfaces, this.interfaces, interfaces.Length);
}
pmodule = mb;
+
// skip .<Module> ?
table_idx = mb.get_next_table_index (this, 0x02, true);
setup_internal_class (this);
public override Type UnderlyingSystemType {
get {
-
- // Return this as requested by Zoltan.
-
return this;
-
-#if false
- // Dont know what to do with the rest, should be killed:
- // See bug: 75008.
- //
- ////// This should return the type itself for non-enum types but
- ////// that breaks mcs.
- if (fields != null) {
- foreach (FieldBuilder f in fields) {
- if ((f != null) && (f.Attributes & FieldAttributes.Static) == 0)
- return f.FieldType;
- }
- }
- throw new InvalidOperationException ("Underlying type information on enumeration is not specified.");
-#endif
}
}
if (created != null)
return created;
+ if (!IsInterface && (parent == null) && (this != pmodule.assemblyb.corlib_object_type) && (FullName != "<Module>")) {
+ SetParent (pmodule.assemblyb.corlib_object_type);
+ }
+
create_generic_class ();
// Fire TypeResolve events for fields whose type is an unfinished
}
public override FieldInfo[] GetFields (BindingFlags bindingAttr) {
+ if (created != null)
+ return created.GetFields (bindingAttr);
+
if (fields == null)
return new FieldInfo [0];
ArrayList l = new ArrayList ();
if (parentType == null && (attrs & TypeAttributes.Interface) == 0)
throw new ArgumentNullException ("parentType");
-
+
parent = parentType;
// will just set the parent-related bits if called a second time
setup_internal_class (this);