+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.