private TypeBuilder DefineNestedType (string name, TypeAttributes attr, Type parent, Type[] interfaces, PackingSize packSize, int typeSize) { // Visibility must be NestedXXX /* This breaks mcs if (((attrs & TypeAttributes.VisibilityMask) == TypeAttributes.Public) || ((attrs & TypeAttributes.VisibilityMask) == TypeAttributes.NotPublic)) throw new ArgumentException ("attr", "Bad type flags for nested type."); */ if (interfaces != null) foreach (Type iface in interfaces) if (iface == null) throw new ArgumentNullException ("interfaces"); TypeBuilder res = new TypeBuilder (pmodule, name, attr, parent, interfaces, packSize, typeSize, this); res.fullname = res.GetFullName (); pmodule.RegisterTypeName (res, res.fullname); if (subtypes != null) { TypeBuilder[] new_types = new TypeBuilder [subtypes.Length + 1]; System.Array.Copy (subtypes, new_types, subtypes.Length); new_types [subtypes.Length] = res; subtypes = new_types; } else { subtypes = new TypeBuilder [1]; subtypes [0] = res; } return res; }