**** Merged from MCS ****
[mono.git] / mcs / gmcs / ChangeLog
index 1a4528cfafc38d8c7e67a1c8ccbbbe3964bf7395..f76e079a27ad4cff279b9da7ac66a9585df725c7 100755 (executable)
@@ -1,3 +1,153 @@
+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