+2007-03-11 Marek Safar <marek.safar@gmail.com>
+
+ * ecore.cs, parameter.cs, typemanager.cs: Another gmcs fix to work with
+ any mscorlib.
+
+2007-03-10 Marek Safar <marek.safar@gmail.com>
+
+ * class.cs, parameter.cs: Unified parameters verification.
+
+2007-03-08 Martin Baulig <martin@ximian.com>
+
+ * cs-parser.jay (constructor_header): Pass the location to the
+ newly created TopLevelBlock.
+
+2007-03-07 Martin Baulig <martin@ximian.com>
+
+ * statement.cs (Block.Resolve): Don't crash on error; bug #80715.
+
+2007-03-06 Miguel de Icaza <miguel@novell.com>
+
+ * convert.cs (ExplicitReferenceConversionExists): Sync this method
+ with the changes from David, fixes the build.
+
+2007-03-05 David Mitchell <dmitchell@logos.com>
+
+ * convert.cs: Implement From System.Collecitons.Generic.IList<T>
+ and its base interfaces to a one-dimensional array type S[],
+ provided there is an implicit or explicit reference conversion
+ from S to T.
+
+2007-03-03 Marek Safar <marek.safar@gmail.com>
+
+ * cs-tokenizer.cs: Implemented basic linq grammar.
+
+ * driver.cs: Set linq lang version on demand.
+
+2007-02-26 Marek Safar <marek.safar@gmail.com>
+
+ * cs-parser.jay, expression.cs: Compile empty __arglist correctly.
+
+2007-02-25 Marek Safar <marek.safar@gmail.com>
+
+ * attribute.cs: Replaced DefinePInvoke in favor of S.R.E implementation
+ (Fixes #80455)
+
+ * class.cs (InterfaceMemberBase): Share common `extern' modifier checks
+ here.
+ Check property and event extern attributes.
+
+ * codegen.cs (ModuleClass): HasDefaultCharSet when module defined global
+ charset.
+
+2007-02-24 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #80407
+ * ecore.cs: Don't report ambiguity error when methods have same parent.
+
+2007-02-23 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #80878
+ * class.cs, cs-parser.jay: Event property can host anonymous methods.
+
+2007-02-22 Marek Safar <marek.safar@gmail.com>
+
+ * attribute.cs: Enable ExtensionAttribute presence test.
+
+2007-02-22 Marek Safar <marek.safar@gmail.com>
+
+ * class.cs: Warn about missing GetHashCode only when Equals is override.
+
+ * decl.cs: Check accessibility of type arguments.
+
+ * typemanager.cs: Correctly report nullable array.
+
+2007-02-20 Marek Safar <marek.safar@gmail.com>
+
+ * class.cs, report.cs: Capture more details when things go wrong.
+
+2007-02-20 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #80650
+ * cs-parser.jay: Anonymous container starts at constructor declaration
+ and not at block beginning because it has to be usable in constructor
+ initializer.
+
+ * statement.cs: Use context location and not block one for error reporting.
+
+2007-02-18 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #78712
+ * class.cs.cs, decl.cs, ecore.cs: LookupAnyGeneric inspects nested types
+ too.
+
+2007-02-18 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #80493 by Atsushi Enomoto
+ * cs-parser.jay: Ignore invalid attribute target.
+
+2007-02-18 Marek Safar <marek.safar@gmail.com>
+
+ * cs-tokenizer.cs: Ignore '\0' as white space character.
+
+2007-02-17 Miguel de Icaza <miguel@novell.com>
+
+ * cs-parser.jay: Add support for lambda expressions to the mcs
+ compiler as well.
+
+ * lambda.cs: Only clone when we are probing, not on the final call
+ (Compatible is the final call).
+
+ * statement.cs (CloneContext): Introduce class to provide block
+ remapping during clone.
+
+ All statements Clone themselves now.
+
+ (Clone): special handling for blocks, when we clone a block, we
+ register the block inside this routine, as children of the block
+ might trigger a lookup.
+
+ * expression.cs: Add support for CloneContext in all expressions.
+
+2007-02-17 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #80493
+ * statement.cs: Report ambiguous warning when interfaces are not related.
+
+2007-02-15 Marek Safar <marek.safar@gmail.com>
+
+ C# 3.0 extension methods.
+
+ * attribute.cs (Error_MisusedExtensionAttribute): Extension attribute
+ cannot be used directly.
+
+ * class.cs (Class.Emit): Emit extension attribute if any class method
+ is extension method.
+ (Method.Define): Add basic extension method validation conditions.
+ (Method.Emit): Emit extension attribute for method.
+
+ * codegen.cs (AssemblyClass): Emit extension attribute if at least one
+ extension method exists. Currently we follow same approach as Microsoft
+ does, emit even if a method or a class are private but this can change
+ later.
+
+ * cs-parser.jay: Add handling of `this' keyword in method parameters
+ context.
+
+ * decl.cs (DeclSpace.IsStaticClass): New property.
+ (MemberCache.FindExtensionMethods): Looks for extension methods with
+ defined name and extension type.
+
+ * doc.cs: Updated after OverloadResolve changes.
+
+ * driver.cs: Add new soft reference to System.Core.dll.
+
+ * ecore.cs (MethodLookup): Can return only MethodGroupExpr.
+ (ExtensionMethodGroupExpr): Represents group of extension methods.
+
+ * expression.cs (Invocation): Moved methods BetterConversion, MoreSpecific,
+ BetterFunction, IsOverride, IsAncestralType, OverloadResolve
+ to MethodGroupExpr and made non-static for easier customization.
+ (Invocation.DoResolve): Add extension method lookup when no standard
+ method was found.
+ (MemberAccess.DoResolve): Try extension methods if no member exists.
+
+ * modifiers.cs: Add METHOD_EXTENSION modifier.
+
+ * namespace.cs (RegisterExtensionMethodClass): Register class namespace
+ as well as candidate extension type.
+ (ComputeNamespaces): When assembly constains extension methods registers
+ them.
+ (Namespace.RegisterExternalExtensionMethodClass): Register type for later
+ extension method lookup.
+ (Namespace.LookupExtensionMethod): Looks for extension method in this
+ namespace.
+ (NamespaceEntry.LookupExtensionMethod): Does extension methods lookup to
+ find a method which matches name and extensionType.
+
+ * parameter.cs (Parameter): Add This modifer.
+ (HasExtensionMethodModifier): New property.
+ (Resolve): Add extension parameter check.
+ (ModFlags): turned to property to exclude this modifier as it is not real
+ parameter modifier.
+ (Parameters): Implemented ExtensionMethodType and HasExtensionMethodType.
+
+ * support.cs (ParameterData): Add ExtensionMethodType.
+ (ReflectionParameters): Implemented ExtensionMethodType interface property.
+
+ * typemanager.cs: Add type and ctor extension attribute type.
+
+2007-02-15 Miguel de Icaza <miguel@novell.com>
+
+ * report.cs (DisableErrors, EnableErrors): used to prevent error
+ output when we are "trying" to compile various methods with
+ different types.
+
+ * ecore.cs (Expression): Add Clone method that calls the virtual
+ CloneTo method. The current CloneTo method in Expression throws
+ an exception so we can track down all the places where this must
+ be implemented (not using abstract, because that would be a lot of
+ up-front-work before we can start testing the implementation
+ idea).
+
+ Important: we only need Clone capabilities for expressions created
+ by the parser, as the expressions we will be cloning are
+ expressions in the pre-resolved state. This vastly simplifies
+ the work required.
+
+ (SimpleName): Add CloneTo that does nothing.
+ (EmptyCast): Add CloneTo.
+
+ * expression.cs (Binary): Implement CloneTo.
+ (Invocation.IsApplicable): Store the current ec in
+ EmitContext.TempEc and restore it on return. This is used so we
+ do not have to sprinkle hundres of methods with an extra
+ EmitContext, we know that the only user is the lambda expression
+ ImplicitConversionExists code.
+
+ (Argument): Add Cloning capabilities.
+ (LocalVariableReference, ParenthesizedExpression, Unary, Probe,
+ Cast, Conditional, ArrayCreation, InvocationOrCast, Invocation,
+ ArglistAccess, ArgList, TypeOf, SizeOf, CheckedExpr,
+ UnCheckedExpr, ElementAccess, BaseAccess, BaseIndexerAccess,
+ IndexerAccess): Add Clone capability.
+
+ (LocalVariableReference, This): TODO: needs cloned Block mapping.
+
+ (Argument): Add cloning capability.
+
+ * assign.cs (Assign): Implement CloneTo.
+
+ * anonymous.cs (ImplicitStandardConversionExists): Make virtual.
+
+ * lambda.cs (ImplicitStandardConversionExists): Implement lambda
+ version by calling Convert with the EmitContext (that we are
+ currently storing in ec, this is not great, but will do for now,
+ to avoid passing EmitContext parameters to hundreds of functions
+ that do not need them now).
+
+ (SetExpression): Remove, it is not needed.
+
+ (ContextualReturn): Implement CloneTo.
+
+ * statement.cs (Statement): Implement cloning infrastructure,
+ similar to expressions.
+
+ (Block): Partial implementation of Clone for statements.
+
+ (Return): Implement clone.
+
+ * constant.cs (Constant.CloneTo): New method, does nothing.
+
+ * codegen.cs (TempEc): Add a static EmitContext as a temporary
+ solution, until we decide how to exactly do this.
+
+2007-02-14 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #80493
+ * class.cs (FindOutBaseMethod): When the base accessor does not exist and
+ a property is override we need to use second accessor.
+
+2007-02-13 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #80418
+ * attribute.cs, class.cs: Use correct calling conventions for pinvoke
+ methods.
+
+2007-02-13 Marek Safar <marek.safar@gmail.com>
+
+ Another fix for bug #80749
+ * pending.cs: Abstract class has priority over interfaces.
+
+2007-02-13 Marek Safar <marek.safar@gmail.com>
+
+ Another fix for bug #80749
+ * pending.cs: Abstract class has priority over interfaces.
+
+2007-02-13 Marek Safar <marek.safar@gmail.com>
+
+ Another fix for bug #80749
+ * pending.cs: Abstract class has priority over interfaces.
+
2007-02-13 Marek Safar <marek.safar@gmail.com>
Another fix for bug #80749