X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fmcs%2FChangeLog;h=32d74c68497a89fb20cbbeb520a6ad537e4cf138;hb=c4d8d7c2beddee9f43a7e99d794ef92341238b2c;hp=68da968c345e8acc9f0f550893376dd276937a0a;hpb=00cbaaf9cb19c7e64a5d720ae8cf87442b3588de;p=mono.git diff --git a/mcs/mcs/ChangeLog b/mcs/mcs/ChangeLog index 68da968c345..32d74c68497 100644 --- a/mcs/mcs/ChangeLog +++ b/mcs/mcs/ChangeLog @@ -1,3 +1,289 @@ +2007-03-11 Marek Safar + + * ecore.cs, parameter.cs, typemanager.cs: Another gmcs fix to work with + any mscorlib. + +2007-03-10 Marek Safar + + * class.cs, parameter.cs: Unified parameters verification. + +2007-03-08 Martin Baulig + + * cs-parser.jay (constructor_header): Pass the location to the + newly created TopLevelBlock. + +2007-03-07 Martin Baulig + + * statement.cs (Block.Resolve): Don't crash on error; bug #80715. + +2007-03-06 Miguel de Icaza + + * convert.cs (ExplicitReferenceConversionExists): Sync this method + with the changes from David, fixes the build. + +2007-03-05 David Mitchell + + * convert.cs: Implement From System.Collecitons.Generic.IList + 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 + + * cs-tokenizer.cs: Implemented basic linq grammar. + + * driver.cs: Set linq lang version on demand. + +2007-02-26 Marek Safar + + * cs-parser.jay, expression.cs: Compile empty __arglist correctly. + +2007-02-25 Marek Safar + + * 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 + + A fix for bug #80407 + * ecore.cs: Don't report ambiguity error when methods have same parent. + +2007-02-23 Marek Safar + + A fix for bug #80878 + * class.cs, cs-parser.jay: Event property can host anonymous methods. + +2007-02-22 Marek Safar + + * attribute.cs: Enable ExtensionAttribute presence test. + +2007-02-22 Marek Safar + + * 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 + + * class.cs, report.cs: Capture more details when things go wrong. + +2007-02-20 Marek Safar + + 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 + + A fix for bug #78712 + * class.cs.cs, decl.cs, ecore.cs: LookupAnyGeneric inspects nested types + too. + +2007-02-18 Marek Safar + + A fix for bug #80493 by Atsushi Enomoto + * cs-parser.jay: Ignore invalid attribute target. + +2007-02-18 Marek Safar + + * cs-tokenizer.cs: Ignore '\0' as white space character. + +2007-02-17 Miguel de Icaza + + * 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 + + A fix for bug #80493 + * statement.cs: Report ambiguous warning when interfaces are not related. + +2007-02-15 Marek Safar + + 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 + + * 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 + + 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 + + A fix for bug #80418 + * attribute.cs, class.cs: Use correct calling conventions for pinvoke + methods. + +2007-02-13 Marek Safar + + Another fix for bug #80749 + * pending.cs: Abstract class has priority over interfaces. + +2007-02-13 Marek Safar + + Another fix for bug #80749 + * pending.cs: Abstract class has priority over interfaces. + +2007-02-13 Marek Safar + + Another fix for bug #80749 + * pending.cs: Abstract class has priority over interfaces. + +2007-02-13 Marek Safar + + Another fix for bug #80749 + * pending.cs: Abstract class has priority over interfaces. + 2007-02-13 Marek Safar * class.cs Better error message.