+2006-01-11 Raja R Harinath <rharinath@novell.com>
+
+ Fix #77200.
+ * cfold.cs (BinaryFold): Implement folding of BinaryOr, BinaryAnd
+ and ExclusiveOr for boolean constants too.
+
+2006-01-09 Raja R Harinath <rharinath@novell.com>
+
+ Fix #75636.
+ * expression.cs (Invocation.OverloadResolve): Replace reflected
+ override methods with their base virtual methods, rather than
+ skipping over them.
+ * typemanager.cs (TypeManager.GetOverride): New.
+
+2006-01-05 Jb Evain <jbevain@gmail.com>
+
+ * class.cs (Property.Define, Indexer.Define): do not tag the
+ properties as SpecialName | RTSpecialName.
+
+2006-01-04 Miguel de Icaza <miguel@novell.com>
+
+ * class.cs (MethodCore.IsDuplicateImplementation): This method was
+ doing a low-level comparission of parameter types. It was lacking
+ a check for __argslist.
+
+2005-12-30 Miguel de Icaza <miguel@novell.com>
+
+ * expression.cs (ParameterReference.DoResolveBase): Allow
+ reference parameters if they are local to this block.
+
+ This allows the ref and out parameters of a delegate to be used in
+ an anonymous method, for example:
+
+ delegate void set (out int x);
+
+ set s = delegate (out int x){
+ x = 0;
+ };
+
+ This is used by functionality introduced late in the C# language.
+
+ * anonymous.cs (AnonymousMethod.Compatible): Allow anonymous
+ method that take ref and out parameters.
+
+ Fixes #77119 which was a late change in the spec.
+
+2005-12-23 Miguel de Icaza <miguel@novell.com>
+
+ * anonymous.cs (ScopeInfo.LinkScope): Do not link the scope to its
+ parent if its the same scope. Fixes #77060.
+
+2005-12-21 Miguel de Icaza <miguel@novell.com>
+
+ * driver.cs: Report the case of no source files and no -out:
+ argument provided.
+
+2005-12-20 Raja R Harinath <rharinath@novell.com>
+
+ Fix #77035.
+ * expression.cs (ComposedCast.GetSignatureForError): Define.
+
+2005-12-18 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ Fix #76995
+
+ * namespace.cs (NamespaceEntry): Add extern_aliases as a
+ ListDictionary, to contain the ExternAliasEntry entries (in
+ addition to the NamespaceEntry.aliases hashtable). This field is
+ shared between the original entry and its doppelganger (bodyless
+ copy of it).
+ (NamespaceEntry.UsingExternalAlias): Add the extern alias entry to
+ extern_aliases field.
+ (NamespaceEntry.Lookup): Move the IsImplicit check after the
+ lookup in extern_aliases.
+
+2005-12-16 Raja R Harinath <rharinath@novell.com>
+
+ Fix #77006.
+ * class.cs (TypeContainer.Mark_HasEquals): New.
+ (TypeContainer.Mark_HasGetHashCode): New.
+ (ClassPart): Override them.
+ (MethodCore.CheckBase): Use them instead of referring to Parent.Methods.
+
+ Fix #77008.
+ * enum.cs (EnumMember.EnumMember): Pass the parent_enum as the
+ 'parent' argument to the base constructor.
+
+ Remove all mention of TypeContainer from decl.cs.
+ * decl.cs (MemberCore.Parent): Change into a DeclSpace.
+ (MemberCore.MemberCore): Change type of 'parent' argument to DeclSpace.
+ (DeclSpace.DeclSpace): Likewise.
+ (DeclSpace.DefineMembers): Remove unused argument.
+ * cs-parser.jay (pop_current_class): Update to changes. Simplify
+ debugging check -- we don't care if the debug code throws an
+ InvalidCastException instead of an InternalErrorException.
+ * class.cs (TypeContainer.DefineMembers): Update to changes.
+ (TypeContainer.DoDefineMembers): Likewise.
+ (TypeContainer.GetMethods): Likewise.
+ (PropertyMember.Define): Likewise.
+ (MemberBase.Parent): New property that forwards to
+ MemberCore.Parent, but ensures that we get a TypeContainer.
+ * rootcontext.cs (RootContext.PopulateCoreType): Update to changes.
+ (RootContext.PopulateTypes): Likewise. Remove special case code
+ for !RootContext.StdLib: DefineMembers is idempotent.
+
+2005-12-14 Miguel de Icaza <miguel@novell.com>
+
+ * convert.cs (ExplicitConversionCore): Check the return value from
+ ExplicitConversionCore which can return null on failure. Fixes #76914
+
+2005-12-13 Marek Safar <marek.safar@seznam.cz>
+
+ * class.cs (Method.ApplyAttributeBuilder): Test out modifier properly.
+
+2005-12-11 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : The search for referenced namespace was insufficient to
+ get global one as it used to do. Fixed bug #76965.
+
+2005-12-10 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : check name in cref in the last phase that whether it is
+ namespace or not.
+
+2005-12-09 Atsushi Enomoto <atsushi@ximian.com>
+
+ * cs-tokenizer.cs : reverted the latest change: it somehow broke
+ Mono.C5.
+
+2005-12-09 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : so it turned out that we cannot skip override check for
+ interface members. Fixed bug #76954.
+
+2005-12-09 Atsushi Enomoto <atsushi@ximian.com>
+
+ * cs-tokenizer.cs : fixed bug #75984:
+ - #warning and #error should not be handled when the source line
+ is disabled.
+ - #line is not checked strictly when the source line is disabled.
+ - #define and #undef is on the other hand checked strictly at any
+ state.
+
+2005-12-08 Atsushi Enomoto <atsushi@ximian.com>
+
+ * cs-tokenizer.cs : missing Location (actually, filename) in one of
+ CS1027 report.
+
+2005-12-05 Marek Safar <marek.safar@seznam.cz>
+
+ * attribute.cs (GlobalAttribute.ctor): Pass NamespaceEntry only.
+
+ * class.cs (EmitFieldInitializers): Simplified and fixed to work with
+ event initializers.
+ (FieldBase.EmitInitializer): Moved from TypeContainer and simplified.
+ (FieldBase.Initializer): Initializer is now optional.
+ (EventField.Define): Only event field can have initializer.
+
+ * codegen.cs (EmitContext): DeclSpace is not readonly (small hack).
+
+ * const.cs (Const): Reuse initializer.
+
+ * cs-parser.jay: Updated after FieldBase changes.
+ Added current_array_type to simplify array initializers.
+
+ * ecore.cs (NullCast.IsDefaultValue): Implemented.
+
+ * expression.cs, iterators.cs: Updated.
+
+ * namespace.cs (NamespaceEntry): Made UsingFound private.
+
+2005-12-05 Marek Safar <marek.safar@seznam.cz>
+
+ * parameterCollection.cs: Obsolete, removed.
+ * parser.cs: Obsolete, removed.
+
+2005-12-05 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #76849.
+ * class.cs (Constructor.Emit): Set obsolete checking for whole context.
+
+ * enum.cs (Enum.Define): Set obsolete context here.
+
+2005-12-05 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs :
+ - FindDocumentedMember() now expects 1) paramList as null
+ when "we don't have to check the number of parameters" and
+ 2) Type.EmptyTypes when "there is no arguments".
+ - Introduced FoundMember struct to hold the exact type which was
+ used to find the documented member (the above change broke
+ test-xml-044; it might be better just to use DeclaringType than
+ what MS does, like this change does, but it depends on usage.)
+
+2005-12-05 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : documented member might be from DeclaringType for nested
+ types. Fixed bug #76782.
+
+2005-12-03 Ben Maurer <bmaurer@ximian.com>
+
+ * anonymous.cs: Have the param code handle leaving copies on the
+ stack etc. Allows anonymous params to take part in the assignment
+ code (++, +=, etc). Fixes bug #76550
+
+ * expression.cs: Handle the prepare_for_load/leave_copy by passing
+ it down to the anon code.
+
+ * iterators.cs: Use dummy var here
+
+ * codegen.cs: Handle new vars
+
+2005-12-01 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #76849.
+ * class.cs (MethodData.Define): Set proper Obsolete context.
+
+ * ecore.cs (FieldExpr.ResolveMemberAccess): Don't check [Obsolete] in
+ obsolete context.
+ (FieldExpr.DoResolve): Ditto.
+
+2005-12-01 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #76849.
+ * class.cs (MethodCore.DoDefineParameters): Test [Obsolete] only when
+ parent is not obsolete.
+
+2005-12-01 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : (FindDocumentedMember) find parameterless members first
+ and get CS0419 in the early stage. Fixed first case of bug #76727.
+
+2005-11-30 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #76859.
+ * ecore.cs (Expression.ResolveAsConstant): Report constant error only when
+ no error was reported.
+
+ *expression.cs (Binary.DoResolve): left can be null.
+
+2005-11-22 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #76783.
+ * class.cs (MethodData.Emit): Parameters should be labeled first.
+
+2005-11-21 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #76761.
+ * parameter.cs (Parameter.ApplyAttributeBuilder): Fixed `ref' detection.
+
+2005-11-18 Marek Safar <marek.safar@seznam.cz>
+
+ * attribute.cs (AreParametersCompliant): Moved to Parameter.
+
+ * class.cs (MethodCore): Parameter clean up.
+ (IMethodData): Added ParameterInfo.
+ (MethodData): Parameter clean up.
+ (Indexer.Define): Parameter clean up.
+
+ * anonymous.cs,
+ * codegen.cs,
+ * cs-parser.jay,
+ * decl.cs,
+ * doc.cs,
+ * ecore.cs,
+ * flowanalysis.cs,
+ * iterators.cs,
+ * pending.cs,
+ * statement.cs,
+ * typemanager.cs: Parameter clean up.
+
+ * delegate.cs (Define): Get rid of duplicated code.
+
+ * expression.cs (ParameterReference): Removed useless parameters
+ and simplified.
+ (Invocation): Ditto.
+
+ * parameter.cs (ParamsParameter): New class, params specialization.
+ (ArglistParameter): Attemp to separate arglist.
+ (Parameter): Refactored to be reusable and faster.
+ (Parameter.Modifier): Made understandable.
+ (Parameters): Changed to be used as a class for `this' assembly
+ parameters. Refactored to use new specialized classes.
+
+ * support.cs (ParameterData): Added Types property.
+ (InternalParameters): Deleted.
+
+2005-08-20 Martin Baulig <martin@ximian.com>
+
+ Merging this patch from GMCS to fix #75867.
+
+ * anonymous.cs (CaptureContext.CaptureThis): Create the topmost
+ scope if we don't already have it.
+
+2005-11-17 Martin Baulig <martin@ximian.com>
+
+ * anonymous.cs
+ (CaptureContext.EmitMethodHostInstance): Use `Ldarg_0' if we
+ inherit the scope from our parent. Fixes #76653.
+
+2005-11-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : the previous patch does not actually fix the bug.
+ PropertyInfo override check is now implemented and really fixed it.
+ * expression.cs : Invocation.IsAncestralType() is used from doc.cs.
+
+2005-11-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : apply "override filter" also to properties.
+ Fixed bug #76730.
+
+2005-11-16 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : renamed FindMembers() to FindMethodBase(). For interfaces,
+ no need to check overrides. For classes, omit those results from
+ interfaces since they must exist in the class. Fixed bug #76726.
+
+2005-11-15 Atsushi Enomoto <atsushi@ximian.com>
+
+ * typemanager.cs : (GetFullNameSignature) differentiate indexers
+ with different parameters. Fixed the second problem in #76685.
+
+2005-11-15 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : (FindDocumentedMember) pass invocation_type as well (to
+ get expected 'protected' access in CheckValidFamilyAccess()).
+ Fixed bug #76692.
+
+2005-11-15 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : (GenerateTypeDocComment) Fields could be FixedField.
+ Fixed bug #76705. CS1569 was incorrectly commented out.
+
+2005-11-14 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : use Invocation.IsOverride() to do real override check.
+ * expression.cs : made Invocation.IsOverride() internal.
+
+2005-11-14 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : use TypeManager.FindMembers() instead of (possible)
+ TypeBuilder.FindMembers() and filter overriden base members out.
+ Fixed bug #76990.
+
+2005-11-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : ref/out parameters are represented as '@' (instead of
+ '&' in type FullName). Fixed bug #76630 (additionally crefs).
+
+2005-11-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : when there was no '.' in cref to methods in doc comment,
+ then parameters were missing in the output. Fixed bug #76691.
+
+2005-11-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * driver.cs : don't output docs when there is an error.
+ Fixed bug #76693.
+
+2005-11-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs :
+ Now it should detect indexers. Fixed primary concern in bug #76685.
+ Fixed CS0419 message to not show the identical member signature in
+ the message.
+
+2005-11-13 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : (FindDocumentedMember) use TypeManager.MemberLookup()
+ instead of Type.FindMembers() since it does not handle events.
+ Fixed bug #71604.
+
+2005-11-12 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * codegen.cs: Fixed typo (speficied -> specified).
+
+2005-11-11 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #76369.
+ * doc.cs (FindDocumentedTypeNonArray): Don't resolve again.
+
+2005-11-11 Marek Safar <marek.safar@seznam.cz>
+
+ * attribute.cs: Changed error message.
+
+ * cs-tokenizer.cs: One more check.
+
+2005-11-10 Marek Safar <marek.safar@seznam.cz>
+
+ * statement.cs (Block.Resolve): Ignore empty statement.
+
+2005-11-10 Marek Safar <marek.safar@seznam.cz>
+
+ * report.cs: Made error/warning methods more strict to avoid
+ their misuse.
+
+ * anonymous.cs, attribute.cs, class.cs, codegen.cs, constant.cs,
+ convert.cs, cs-parser.jay, cs-tokenizer.cs, decl.cs, delegate.cs,
+ doc.cs, driver.cs, ecore.cs, expression.cs, location.cs,
+ namespace.cs, parameter.cs, statement.cs, typemanager.cs: Updated.
+
+2005-11-08 Marek Safar <marek.safar@seznam.cz>
+
+ * attribute.cs (Attribute.GetCoClassAttributeValue): New method.
+ (AttributeTester.GetCoClassAttribute): Get CoClassAttribute.
+
+ * class.cs (TypeContainer.IsComImport): New property.
+ (Constructor.Define): Create proper ctor for ComImport types.
+
+ * expression.cs (New.CheckComImport): Fixed.
+
+2005-11-07 Miguel de Icaza <miguel@novell.com>
+
+ * anonymous.cs (CaptureContext.AddParameterToContext): The fact
+ that a parameter has been captured does not mean that we do not
+ have to do the rest of the processing. This fixes the second part
+ of #76592. If there was another anonymous method capturing
+ values in the past, the Scope would never be set for the second
+ method that captured the same parameter.
+
+ (CaptureContext.EmitAssignParameter): When `leave_copy' is passed,
+ properly manipulate the stack. Second part of fix for #76592.
+
+ * expression.cs (New): Add support for invoking "new" on
+ interfaces that have been flagged with the ComImport attribute and
+ the CoClass. Fixes #76637
+
+ * statement.cs (Try.DoEmit): When a variable is captured, do not
+ try to emit the vi.LocalBuilder variable as it has been captured.
+ Create a temporary variable and store the results on the
+ FieldBuilder. Fixes #76642
+
+2005-11-07 Marek Safar <marek.safar@seznam.cz>
+
+ * class.cs (CheckPairedOperators): Made compilable with csc 2.0.
+
+ * ecore.cs (InstanceResolve): Fixed CS1540 detection.
+
+ * expression.cs (Binary.DoResolve): Added && optimalization.
+
+ * typemanager.cs (AddUserType): Removed useless argument.
+
+2005-11-04 Marek Safar <marek.safar@seznam.cz>
+
+ * statement.cs (Block.variables): Uses ListDictionary.
+
+2005-11-03 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #75969.
+ * class.cs (PartialContainer.EmitType): Customized to emit
+ security attributes.
+ (ClassPart.ApplyAttributeBuilder): Transform security attribute
+ for partial classes.
+
+2005-11-03 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #76599.
+ * expression.cs (ElementAccess.DoResolveLValue): Fixed buffer
+ access has to be fixed.
+
+ * typemanager.cs (IsUnmanagedType): Wrong common field type.
+
+2005-11-01 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #76590.
+ * ecore.cs (NullCast.Reduce): Implemented.
+
+ * expression.cs (ArrayCreation.CheckIndices): Correcly check
+ constant type.
+
+ * statement.cs (SwitchLabel.ResolveAndReduce): Catch null
+ properly.
+ (Foreach.Resolve): Catch null properly.
+
+2005-10-29 Marek Safar <marek.safar@seznam.cz>
+
+ * cs-tokenizer.cs: Warning text fix.
+
+ * driver.cs: AllWarningNumbers exposed on public interface.
+
+ * report.cs (): Reviewed warning numbers.
+ (IsValidWarning): Use binary search.
+
+2005-10-29 Marek Safar <marek.safar@seznam.cz>
+
+ * driver.cs: Implemeted resource visibility.
+ (Resources): New class for code sharing between /res: and
+ /linkres:
+
+2005-10-28 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #76568.
+ * cfold.cs (ConstantFold.BinaryFold): Implemented null cast
+ folding.
+
+ * convert (Convert.ImplicitReferenceConversion): NullCast holds
+ contants only.
+
+ * ecore.cs (NullCast): Child is contant only.
+
+ * literal.cs (NullLiteral.Reduce): null can be converted to any
+ reference type.
+
+2005-10-28 Kornél Pál <kornelpal@hotmail.com>
+
+ * driver.cs: Use Encoding.Default as default code page instead
+ of ISO-28591.
+
+2005-10-27 Raja R Harinath <rharinath@novell.com>
+
+ Fix #76085.
+ * expression.cs (Invocation.Error_InvalidArguments): Handle
+ __arglist parameters.
+ (Invocation.VerifyArgumentsCompat): Likewise.
+ * support.cs (ReflectionParameters.GetSignatureForError): Print
+ __arglist parameters.
+ (InternalParamters.GetSignatureForError): Likewise.
+ * parameter.cs (Parameters.GetSignatureForError): Likewise.
+
+2005-10-26 Marek Safar <marek.safar@seznam.cz>
+
+ * attribute.cs (GetPropertyValue): Made public.
+
+ * codegen.cs (AssemblyClass): ResolveClsCompliance renamed to
+ Resolve.
+ Add new property WrapNonExceptionThrows to handle 2.0 assembly
+ attribute.
+ (AssemblyClass.Emit): Emit RuntimeCompatibilityAttribute when it
+ is not defined.
+
+ * driver.cs: Reflect method name change.
+
+ * statement.cs (Try.Resolve): Warn when try has both general
+ exception handlers.
+
+ * typemanager.cs: runtime_compatibility_attr_type new predefined
+ type.
+
+2005-10-26 Raja R Harinath <harinath@gmail.com>
+
+ Fix #76419.
+ * pending.cs (InterfaceMethod): Allow tm.args [i] to be null --
+ treat it as an empty parameter list.
+
+2005-10-26 Raja R Harinath <rharinath@novell.com>
+
+ Fix #76271.
+ * ecore.cs (SimpleName.DoSimpleNameResolve): Make fall-back
+ ResolveAsTypeStep silent.
+ * statement.cs (Block.AddConstant): Mark block as used.
+ (Block.ResolveMeta): Avoid piling on error messages
+ if a constant initializer resolution fails.
+
2005-10-25 Raja R Harinath <rharinath@novell.com>
+ * namespace.cs (RootNamespace.VerifyUsingForAll, Namespace.VerifyUsing):
+ Remove.
+ (NamespaceEntry.VerifyAllUsing): New.
+ (NamespaceEntry.AliasEntry.Resolve): New. Handles common error
+ behaviour. Delegates actual resolution of alias to ...
+ (NamespaceEntry.DoResolve): ... this. Renamed from Resolve.
+ (NamespaceEntry.LocalAliasEntry, NamespaceEntry.ExternAliasEntry):
+ Update.
+ * driver.cs (Driver.MainDriver): Update.
+
* namespace.cs (NamespaceEntry.DefineNamespace): Remove.
(NamespaceEntry.SymbolFileID): Make into a on-demand computed
property.