Ooops, this was wrong.
[mono.git] / mcs / gmcs / ChangeLog
index c4c028820ea305fa4459264e7eff93fd33cdcda7..51d9d4e721230462339bb8b07bd637ecf98836af 100644 (file)
@@ -1,3 +1,395 @@
+2005-03-22  Martin Baulig  <martin@ximian.com>
+
+       * delegate.cs (Delegate.VerifyMethod): Call
+       TypeManager.GetParameterData() after method inference, not before.
+
+2005-02-25  Marek Safar  <marek.safar@seznam.cz>
+
+       * attribute.cs (Atttribute.Resolve): Add cache for parameter-less
+       attributes. Removed useless attribute double check.
+       It saves almost 2MBs for corlib.
+
+2005-02-25  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #72924.
+       * statement.cs (ExpressionStatement.Resolve): Make robust to being
+       called twice in case of error.
+
+2005-02-23  Chris Toshok  <toshok@ximian.com>
+
+       Fix compiler portions of #72827.
+       * statement.cs (Block.Emit): call Begin/EndScope on the
+       EmitContext instead of the ILGenerator.
+
+       * codegen.cs (EmitContext.BeginScope): new method, call
+       ILGenerator.BeginScope as well as the SymbolWriter's OpenScope (if
+       we have one.)
+       (EmitContext.BeginScope): same, but EndScope and CloseScope
+
+       * symbolwriter.cs (SymbolWriter.OpenScope): get the current il
+       offset and call the superclass's OpenScope(int) with it.
+       (SymbolWriter.CloseScope): get the current il
+       offset and call superclass's CloseScope(int) with it.
+
+2005-02-23  Marek Safar  <marek.safar@seznam.cz>
+
+       * anonymous.cs (AnonymousMethod.Compatible): Fixed to report
+       CS1677 for out and ref as well.
+
+       * class.cs (Method.Define): Add error CS1599 detection.
+       
+       * cs-parser.jay: Add CS1609, CS1670, CS1627 detection.
+       
+       * cs-tokenizer.cs (xtoken): Add error CS1646 detection.
+       
+       * delegate.cs (Delegate.Define): Add error CS1599 detection.
+       
+       * support.cs.cs (ModifierDesc): New helper method.
+
+2005-02-23  Raja R Harinath  <rharinath@novell.com>
+           Abin Thomas  <projectmonokochi@rediffmail.com>
+           Anoob V E  <projectmonokochi@rediffmail.com>
+           Harilal P R  <projectmonokochi@rediffmail.com>
+
+       Fix #57851, #72718.
+       * class.cs (ConstructorBuilder.Resolve): Make sure that the second
+       MemberLookup (used for error reporting) actually returns a result.
+       Fix error report number (122, not 112).
+
+2005-02-22  Abin Thomas  <projectmonokochi@rediffmail.com>
+           Anoob V E  <projectmonokochi@rediffmail.com>
+           Harilal P R  <projectmonokochi@rediffmail.com>
+
+       Fix #71134.
+       * pending.cs (PendingImplementation.GetAbstractMethods):
+       Find NonPublic members too.
+
+2005-02-22  Marek Safar  <marek.safar@seznam.cz>
+
+       * expression.cs.cs (ConditionalLogicalOperator.DoResolve):
+       Fixed error 217.
+       
+       * class.cs (MethodCore.CheckMethodAgainstBase):
+       Add error 239 report.
+
+2005-02-21  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #68955.
+       * expression.cs (Invocation.IsApplicable): Make public.
+       (Invocation.IsParamsMethodApplicable): Likewise.
+       * delegate.cs (Delegate.VerifyApplicability): Don't use
+       Invocation.VerifyArgumentCompat for parameter applicability
+       testing.  Use Invocation.IsApplicable and
+       Invocation.IsParamsMethodApplicable.
+
+2005-02-21  Marek Safar  <marek.safar@seznam.cz>
+
+       * ecore.cs (PropertyExpr.DoResolve): Add error 214 report.
+       
+       * class.cs (Operator.Define): Add error 217 report.
+       
+2005-02-21  Raja R Harinath  <rharinath@novell.com>
+
+       * namespace.cs (UsingEntry.Resolve): Undo change below.
+
+2005-02-21  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #72756.
+       * ecore.cs (Expression.MemberLookupFailed): Add argument to
+       disable the error message when the extended MemberLookup also
+       fails.
+       (Expression.MemberLookupFinal): Update.
+       (SimpleName.DoSimpleNameResolve): Update.
+       * expression.cs (MemberAccess.ResolveNamespaceOrType):
+       Don't use MemberLookupFinal.
+       (New.DoResolve): Update.
+       (BaseAccess.CommonResolve): Update.
+
+2005-02-21  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #72732.
+       * attribute.cs (Attribute.ResolveType): If a 'resolve_error' had
+       occured previously, don't resolve again.
+
+2005-02-21  Marek Safar  <marek.safar@seznam.cz>
+
+       Fix #69949
+       * attribute.cs (Attribute.GetAttributeUsage): Add EmitContext
+       argument. Call ResolveAttributeUsage for unresolved.
+       when types doesn't match ctor arguments.
+       
+       * class.cs (DoDefineMembers.TypeContainer): Removed safety check
+       for nested attribute classes.
+       (Class.attribute_usage): Removed.
+       (Class.ResolveAttributeUsage): Resolves AttributeUsageAttribute
+       for attribute class.
+       
+       * namespace.cs (UsingEntry.Resolve): Don't destroy NamespaceEntry.
+       
+       * rootcontext.cs (RegisterAttribute): Removed, attributes are
+       now normal types.
+       (attribute_types): Removed.
+       (EmitCode): Global attributes are emited as the latest.
+
+2005-02-18  Marek Safar  <marek.safar@seznam.cz>
+
+       * class.cs (EmitFieldInitializers): Don't emit field initializer
+       for default values when optimilization is on.
+       
+       * constant.cs (Constant.IsDefaultValue): New property.
+       
+       * driver.cs: Add /optimize handling.
+       
+       * constant.cs,
+       * ecore.cs,
+       * literal.cs: Implement new IsDefaultValue property.
+       
+       * rootcontext.cs (Optimize): New field, holds /optimize option.
+
+2005-02-18  Raja R Harinath  <rharinath@novell.com>
+
+       Fix crasher in re-opened #72347.
+       * namespace.cs (Namespace.Lookup): Return null if
+       DeclSpace.DefineType returns null.
+
+       Fix #72678.
+       * expression.cs (Argument.Resolve): Handle a case of CS0120 here.
+
+2005-02-18  Raja R Harinath  <rharinath@novell.com>
+
+       Fix remainder of #63202.  Change semantics of DoResolveLValue: it
+       now returns null if it cannot resolve to an lvalue.
+       * ecore.cs (Expression.DoResolveLValue): Return 'null' by default.
+       (Expression.ResolveLValue): Emit CS0131 error if DoResolveLValue
+       returned null.  Remove check for SimpleName.
+       (EventExpr.DoResolveLValue): New.
+       * iterators.cs (Iterator.FieldExpression.DoResolveLValue): New.
+       * expression.cs (Argument.Error_LValueRequired): New.  Move CS1510
+       error from ...
+       (Argument.Resolve): ... here.  Use it.  Use DoResolveLValue to
+       avoid CS0131 error.
+       (Unary.ResolveOperator): Move CS0211 check ...
+       (Unary.DoResolve): ... here.  Use DoResolveLValue to avoid
+       CS0131 error.
+       (Unary.DoResolveLValue): Simplify.
+       (AddressOf.DoResolveLValue): New.
+       (ArrayAccess.DoResolveLValue): New.
+
+2005-02-16  Marek Safar  <marek.safar@seznam.cz>
+
+       * attribute.cs (Attribute.Resolve): Add arguments casting for
+       when types doesn't match ctor arguments.
+
+2005-02-16  Raja R Harinath  <rharinath@novell.com>
+
+       Fix parts of #63202.
+       * expression.cs (UnaryMutator.ResolveOperator): Remove redundant
+       lookup of operator in base type.  Ensure that all checks happen
+       when the operator resolves to an "op_..." method.
+
+2005-02-15  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #71992.
+       * namespace.cs (NamespaceEntry.LookupNamespaceOrType): Add
+       'ignore_cs0104' parameter.  Pass it to ...
+       (NamespaceEntry.Lookup): ... this.
+       * decl.cs (DeclSpace.LookupType): Add 'ignore_cs0104' parameter.
+       * ecore.cs (SimpleName.ResolveAsTypeStep): Update.
+       (TypeLookupExpression.DoResolveAsTypeStep): Update.
+       * expression.cs (MemberAccess.IdenticalNameAndTypeName):
+       Update.  Request that cs0104 errors be ignored.
+       (ComposedCast.ResolveAsTypeStep): Update.
+
+2005-02-14  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #59209.
+       * expression.cs (Invocation.BetterFunction): Remove support for
+       comparing virtual functions and their overrides.
+       (Invocation.IsOverride): New.
+       (Invocation.OverloadResolve): Don't consider 'override' functions
+       during candidate selection.  Store them in a lookaside list.
+       If the selected method is a 'virtual' function, use the list to
+       find any overrides that are closer to the LHS type.
+
+2005-02-14  Marek Safar  <marek.safar@seznam.cz>
+
+       * expression.cs (New.DoResolve): Add complex core type reduction.
+       (New.Constantify): Converts complex core type syntax like 'new int ()'
+       to simple constant.
+       
+2005-02-14  Raja R Harinath  <rharinath@novell.com>
+
+       * decl.cs (EntryType.EntryType): New constructor to create an
+       updated copy of a cache entry.
+       (MemberCache.AddMethods): Use it.
+       (MemberCache.ClearDeclaredOnly): Remove.
+       (MemberCache.MemberCache): Update.
+
+2005-02-11  Miguel de Icaza  <miguel@novell.com>
+
+       * codegen.cs (EmitContext): Introduce the `MethodIsStatic'
+       variable.  This one is represents the actual low-level declaration
+       of the method, as opposed to the semantic level `IsStatic'.   
+
+       An anonymous method which is hosted into a static method might be
+       actually an instance method.  IsStatic would reflect the
+       container, while MethodIsStatic represents the actual code
+       generated.
+
+       * expression.cs (ParameterReference): Use the new MethodIsStatic
+       instead of IsStatic.
+
+       * anonymous.cs (AnonymousMethod.Compatible): Pass the
+       Modifiers.STATIC to the Anonymous' Method EmitContext if static is
+       set on the current EmitContext. 
+
+       * expression.cs (Cast): Overload DoResolveLValue so we can pass
+       resolve our casted expression as an LValue.  This triggers the
+       proper LValue processing that is later required by Assign.
+
+       This fixes 72347.
+
+       * cs-tokenizer.cs (pp_and): recurse on pp_and, fixes #61903.
+
+2005-02-11  Marek Safar  <marek.safar@seznam.cz>
+
+       C# 2.0 Fixed buffer implementation
+
+       * anonymous.cs: Update after RegisterHelperClass renaming.
+
+       * attribute.cs (AttributeTester.fixed_buffer_cache):
+       Cache of external fixed buffers.
+       (AttributeTester.GetFixedBuffer): Returns IFixedBuffer
+       implementation if field is fixed buffer else null.
+
+       * class.cs
+       (TypeContainer.AddField): Accept FieldMember instead of Field.
+       (FieldBase.IsFieldClsCompliant): Extracted code from
+       VerifyClsCompliance descendant customization.
+       (FixedField): New class handles fixed buffer fields.
+       (FixedFieldExternal): Keeps information about imported fixed
+       buffer.
+       (IFixedField): Make access to internal or external fixed buffer
+       same.
+
+       * cs-parser.jay: Add fixed buffer parsing.
+
+       * ecore.cs (FieldExpr.Emit): Add special emit case for fixed
+       buffer.
+
+       * expression.cs (Indirection): Extended implementation to accept
+       fixed buffer field.
+       (PointerArithmetic.Emit): Get element from fixed buffer as well.
+       (ElementAccess.MakePointerAccess): Get type as parameter.
+       (DoResolve): Add fixed buffer field expression conversion.
+       (DoResolveLValue): Ditto.
+       (FixedBufferPtr): New class. Moved most of original ArrayPtr.
+       (ArrayPtr): Derives from FixedBufferPtr.
+       (ArrayPtr.Emit): Add extra emit for array elements.
+
+       * flowanalysis.cs.cs (StructInfo): Use FieldMember.
+
+       * rootcontext.cs (CloseTypes): Emit CompilerGenerated attribute
+       for compiler generated types.
+       (RegisterCompilerGeneratedType): Renamed from RegisterHelperClass.
+
+       * statement.cs (Fixed): Refactored to be easier add fixed buffer
+       and consume less memory.
+       (Fixed.Resolve): Add fixed buffer case.
+
+       * typemanager.cs (compiler_generated_attr_ctor,
+       fixed_buffer_attr_ctor): Add new 2.0 compiler attributes.
+       (HasElementType): Add our own implementation to work on every
+       runtime.
+
+2005-02-11  Miguel de Icaza  <miguel@novell.com>
+
+       * anonymous.cs (CaptureContext): Track whether `this' has been
+       referenced.   
+
+       * expression.cs (This.ResolveBase): Call CaptureThis.  Before we
+       only captured `this' if it was implicitly done (instance
+       methods/variables were used). 
+
+       * codegen.cs (EmitContext.CaptureThis): New method to flag that
+       `this' must be captured.
+
+2005-01-30  Miguel de Icaza  <miguel@novell.com>
+       * anonymous.cs (CreateMethodHost): If there Scope.ScopeTypeBuilder
+       is null it means that there has been no need to capture anything,
+       so we just create a sibling.
+
+       Renamed `EmitHelperClasses' to `EmitAnonymousHelperClasses'
+
+       Just a partial fix.  The other half is fairly elusive.
+       
+2005-02-10  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #52586, cs0121-4.cs.
+       * decl.cs (MemberCache.DeepCopy): Rename from SetupCache.  Take
+       and return a hashtable.
+       (MemberCache.ClearDeclaredOnly): New.
+       (MemberCache.MemberCache): Update to change.  Make a deep copy of
+       the method_hash of a base type too.
+       (MemberCache.AddMethods): Adapt to having a deep copy of the base
+       type methods.  Overwrite entries with the same MethodHandle so
+       that the ReflectedType is correct.  The process leaves in base
+       virtual functions and their overrides as distinct entries.
+       (CacheEntry): Now a class instead of a struct.  It shouldn't alter
+       matters since it was boxed in a ArrayList before.
+       (CacheEntry.Member, CacheEntry.EntryType): Remove 'readonly'
+       modifier.
+       * expression.cs (Invocation.BetterFunction): Simplify.  Handle the
+       case of a virtual function and its override (choose the overload
+       as better).
+       (Invocation.OverloadResolve): Avoid 'override' members during
+       'applicable_type' calculation.
+
+2005-02-09  Raja R Harinath  <rharinath@novell.com>
+
+       Combine two near-redundant caches.
+       * typemanager.cs (method_params): Rename from method_internal_params.
+       (TypeManager.GetParameterData): New.  Replace
+       Invocation.GetParameterData.
+       (TypeManager.LookupParametersByBuilder): Remove.
+       * expression.cs (Invocation.method_parameter_cache): Remove.
+       (Invocation.GetParameterData): Remove.
+       Update to changes.
+       * anonymous.cs, attribute.cs, convert.cs, delegate.cs:
+       Update to changes.
+
+2005-02-08  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #72015.
+       * delegate.cs (Delegate.DefineType): When bootstrapping corlib, if
+       TypeManager.multicast_delegate_type is null, resolve it by looking
+       up "System.MulticastDelegate".
+       * rootcontext.cs (RootContext.ResolveCore): Simplify.
+
+2005-02-07  Abin Thomas (NOSIP)  <projectmonokochi@rediffmail.com>
+           Anoob V.E (NOSIP)  <projectmonokochi@rediffmail.com>
+           Harilal P.R (NOSIP)  <projectmonokochi@rediffmail.com>
+
+       Fix cs0164.cs.
+       * statement.cs (LabeledStatement.Resolve): Don't set 'referenced'.
+       (LabeledStatement.AddReference): New.  Set 'referenced'.
+       (Goto.Resolve): Use it.
+
+2005-02-05  John Luke  <john.luke@gmail.com>
+
+       * driver.cs: remove duplicate -doc line in Usage ()
+
+2005-02-04  Raja R Harinath  <rharinath@novell.com>
+
+       * location.cs (Location.AddFile): Fix CS2002 error report.
+
+2005-02-02  Martin Baulig  <martin@ximian.com>
+
+       * delegate.cs (Delegate.DefineType): Report an internal error if
+       TypeManager.multicast_delegate_type is null.  See bug #72015 for
+       details.        
+
 2005-02-02  Raja R Harinath  <rharinath@novell.com>
 
        Fix a crasher in a variant of #31984.