+2004-05-19 Raja R Harinath <rharinath@novell.com>
+
+ * cs-parser.jay (attribute): Create a GlobalAttribute for the case
+ of a top-level attribute without an attribute target.
+ * attribute.cs (Attribute.Error_AttributeConstructorMismatch):
+ Make non-static.
+ (Attribute.Conditional_GetConditionName),
+ (Attribute.Obsolete_GetObsoleteMessage): Update.
+ (Attribute.IndexerName_GetIndexerName): New. Attribute-specific
+ part of ScanForIndexerName.
+ (Attribute.CanIgnoreInvalidAttribute): New function.
+ (Attribute.ScanForIndexerName): Move to ...
+ (Attributes.ScanForIndexerName): ... here.
+ (Attributes.Attrs): Rename from now-misnamed AttributeSections.
+ (Attributes.Search): New internal variant that can choose not to
+ complain if types aren't resolved. The original signature now
+ complains.
+ (Attributes.GetClsCompliantAttribute): Use internal variant, with
+ complaints suppressed.
+ (GlobalAttribute.CheckAttributeType): Overwrite ds.NamespaceEntry
+ only if it not useful.
+ (CanIgnoreInvalidAttribute): Ignore assembly attribute errors at
+ top-level for attributes that are shared between the assembly
+ and a top-level class.
+ * parameter.cs (ImplicitParameter): Rename from ParameterAtribute.
+ * class.cs: Update to reflect changes.
+ (DefineIndexers): Fuse loops.
+ * codegen.cs (GetAssemblyName): Update to reflect changes. Accept
+ a couple more variants of attribute names.
+
+2004-05-18 Marek Safar <marek.safar@seznam.cz>
+
+ Fix bug #52585 (Implemented explicit attribute declaration)
+
+ * attribute.cs:
+ (Attributable.ValidAttributeTargets): New abstract method. It gets
+ list of valid attribute targets for explicit target declaration.
+ (Attribute.Target): It holds target itself.
+ (AttributeSection): Removed.
+ (Attribute.CheckTargets): New method. It checks whether attribute
+ target is valid for the current element.
+
+ * class.cs:
+ (EventProperty): New class. For events that are declared like
+ property (with add and remove accessors).
+ (EventField): New class. For events that are declared like field.
+ class.cs
+
+ * cs-parser.jay: Implemented explicit attribute target declaration.
+
+ * class.cs, decl.cs, delegate.cs, enum.cs, parameter.cs:
+ Override ValidAttributeTargets.
+
+ * parameter.cs:
+ (ReturnParameter): Class for applying custom attributes on
+ the return type.
+ (ParameterAtribute): New class. Class for applying custom
+ attributes on the parameter type.
+
+2004-05-17 Miguel de Icaza <miguel@ximian.com>
+
+ * class.cs (MemberBase.DoDefine): Pass UNSAFE on interface
+ definitions.
+
+ (Method): Allow UNSAFE here.
+
+ * modifiers.cs: Support unsafe reporting.
+
+2004-05-17 Marek Safar <marek.safar@seznam.cz>
+
+ * decl.cs: Fix bug #58478.
+
+2004-05-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+ * statement.cs: When checking for unreachable code on an EmptyStatement,
+ set the location. Fixes bug #58488.
+
+2004-05-13 Miguel de Icaza <miguel@ximian.com>
+
+ * driver.cs: Add -pkg handling.
+
+ From Gonzalo: UseShelLExecute=false
+
+2004-05-12 Marek Safar <marek.safar@seznam.cz>
+
+ * attribute.cs:
+ (Attribute.GetAttributeTargets): New method. Gets AttributeTargets
+ for attribute.
+ (Attribute.IsClsCompliaceRequired): Moved to base for better
+ accesibility.
+ (Attribute.UsageAttribute): New property for AttributeUsageAttribute
+ when attribute is AttributeUsageAttribute.
+ (Attribute.GetValidTargets): Simplified.
+ (Attribute.GetAttributeUsage): New method returns AttributeUsage
+ attribute for this type.
+ (Attribute.ApplyAttributes): Method renamed to Emit and make
+ non-static.
+ (GlobalAttributeSection): New class for special handling of global
+ attributes (assembly, module).
+ (AttributeSection.Emit): New method.
+
+ * class.cs: Implemented Attributable abstract methods.
+ (MethodCore.LabelParameters): Moved to Parameter class.
+ (Accessor): Is back simple class.
+ (PropertyMethod): Implemented Attributable abstract class.
+ (DelegateMethod): Implemented Attributable abstract class.
+ (Event): New constructor for disctintion between normal Event
+ and Event with accessors.
+
+ * cs-parser.jay: Used new Event ctor and GlobalAttributeSection.
+
+ * codegen.cs, const.cs, decl.cs, delegate.cs:
+ (CommonAssemblyModulClass): Implemented Attributable abstract class
+ and simplified.
+
+ * enum.cs: Implement IAttributeSupport interface.
+ (EnumMember): New class for emum members. Implemented Attributable
+ abstract class
+
+ * parameter.cs:
+ (ParameterBase): Is abstract.
+ (ReturnParameter): New class for easier [return:] attribute handling.
+
+ * typemanager.cs: Removed builder_to_attr.
+
+2004-05-11 Raja R Harinath <rharinath@novell.com>
+
+ Fix bug #57151.
+ * attribute.cs (Attribute.GetPositionalValue): New function.
+ * class.cs (TypeContainer.VerifyMembers): New function.
+ (TypeContainer.Emit): Use it.
+ (ClassOrStruct): New base class for Class and Struct.
+ (ClassOrStruct.ApplyAttributeBuilder): New function. Note if
+ StructLayout(LayoutKind.Explicit) was ascribed to the struct or
+ class.
+ (ClassOrStruct.VerifyMembers): If the struct is explicitly laid out,
+ then each non-static field should have a FieldOffset attribute.
+ Otherwise, none of the fields should have a FieldOffset attribute.
+ * rootcontext.cs (RootContext.ResolveCore): Resolve StructLayout
+ and FieldOffset attributes.
+ * typemanager.cs (TypeManager.struct_layout_attribute_type)
+ (TypeManager.field_offset_attribute_type): New core types.
+ (TypeManager.InitCoreTypes): Initialize them.
+
+2004-05-11 Michal Moskal <malekith@pld-linux.org>
+
+ * class.cs (Event.RemoveDelegateMethod.DelegateMethodInfo):
+ Return correct type.
+ From bug #58270.
+
2004-05-09 Miguel de Icaza <miguel@ximian.com>
* expression.cs (Binary.DoNumericPromotions): 0 long constant can
parameter.
Fixes #56442.
+2004-04-08 Martin Baulig <martin@ximian.com>
+
+ Merged latest changes into gmcs. Please keep this comment in
+ here, it makes it easier for me to see what changed in MCS since
+ the last time I merged.
+
2004-04-16 Raja R Harinath <rharinath@novell.com>
* class.cs (TypeContainer.AddIndexer): Use