X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fmcs%2FChangeLog;h=11bc5b8564c12ec799622c654c28a2d7185f32b4;hb=ca272b431064feaecf1d0a873e3a444e3ffd6269;hp=91b4adef6d49225769b081ca09b45b93d0cea7ff;hpb=bf69e2ebdb7dc744759dfe2a98924ed1d3f426a8;p=mono.git diff --git a/mcs/mcs/ChangeLog b/mcs/mcs/ChangeLog index 91b4adef6d4..11bc5b8564c 100644 --- a/mcs/mcs/ChangeLog +++ b/mcs/mcs/ChangeLog @@ -1,3 +1,438 @@ +2007-08-24 Atsushi Enomoto + + * doc.cs : catch other types of exception than XmlException to + report CS1570. Fixed bug #82565. + +2007-08-23 Marek Safar + + * anonymous.cs (AnonymousMethodExpressin.ExplicitTypeInference): + The number of delegate parameters has to match. + (AnonymousMethodExpressin.VerifyParameterCompatibility): Handles generic + arrays. + +2007-08-21 Marek Safar + + * anonymous.cs (AnonymousMethod): Generate private anonymous method + to fix problem with private arguments. + +2007-08-20 Marek Safar + + * anonymous.cs (AnonymousTypeClass): An anonymous type can be empty. + + * decl.cs (MemberName): Ignore generic type with no generic arguments. + + * expression.cs (AnonymousTypeDeclaration): An anonymous type can be + empty. Add cloning suport. + + * roottypes.cs (GetAnonymousType): Fixed argument comparison logic. + +2007-08-20 Marek Safar + + * convert.cs, ecore.cs, expression.cs, literal.cs: Use factory method + to create EmptyCast. It handles EmptyConstantCast specialization for + constants. + +2007-08-18 Marek Safar + + * expression.cs (Binary.is_unsigned): Handle unsafe types too. + (EmitArrayArgument): One routine for array arguments. + (ArrayCreation.MakeByteBlob): Fixed an array alignment. + +2007-08-17 Marek Safar + + * cs-tokenizer.cs (GetKeyword): Handle from keyword in a different way. + +2007-08-17 Marek Safar + + * anonymous.cs: MemberLookupFinal update. + + * class.cs (ConstructorInitializer): Is expression based. + + * delegate.cs: MethodGroupExpr update. + + * ecore.cs (Error_MemberLookupFailed): Improved to report better error + messages. + (Error_MemberLookupFailed): Customizable error override. + (MethodGroupExpr): Keep queried type for later usage. + (MethodGroupExpr.OverloadResolve): Catch errors related to overload + resolve. + + * expression.cs: Error_MemberLookupFailed refactoring. + (New.DoResolve): Resolve as much as possible. + (ElementInitializer.Error_MemberLookupFailed): Object initializer + customization for invalid member types. + + * statement.cs: MethodGroupExpr update. + +2007-08-16 Marek Safar + + * modifier.cs (Check): Check all modifiers and not only accessibility + ones. + +2007-08-16 Marek Safar + + * ecore.cs (Expression.Error_ValueCannotBeConverted): Report always a + type and not an expression. + +2007-08-16 Marek Safar + + * statement.cs (Catch.Clone): Type and variable can be null. + +2007-08-16 Marek Safar + + A fix for bug #81979 + * assign.cs (Assign.Emit): Prepare arguments for string concatenation. + I am really not sure whether this is the best fix. + + * expression.cs (VariableReference.EmitAssign): Do prepare_load test + only once. + +2007-08-14 Marek Safar + + ** C# 3.0 Object and collection initializers (major re-write) + + * assign.cs (DoResolve): Initializers are not assign related. + + * codegen.cs (EmitContext.CurrentInitializerVariable): Holds a varible + used during collection or object initialization. + + * expression.cs (Error_InvalidArguments): Add initializers specific + messages. More will come later because it requires some general + refactoring. + (New.DoResolve): Better error handling for unsafe types. + (EmptyExpressionStatement): New class. + (ElementInitializer): An object initializer expression. + (CollectionElementInitializer): A collection initializer expression. + (CollectionOrObjectInitializers): A block of object or collection + initializers. + (NewInitialize): New expression with element/object initializers. + + * statement.cs: Reverted object/collection initializer hacks. + + * typemanager.cs (CSharpName): Filter __arglist type. + +2007-08-09 Marek Safar + + ** C# 3.0 Anonymous Types (update to the latest standard) + + * expression.cs (Binary.ResolveOperator): Threat all null based types + same. + (AnonymousTypeDeclaration): Renamed from AnonymousType and simplified. + (AnonymousTypeParameter): Updated. + + * anonymous.cs (CompilerGeneratedClass): Add custom name overload. + (AnonymousTypeClass): New anonymous type container. + + * class.cs (AddField): Return operation result. + + * generic.cs: Another empty TypeArguments overload. + + * roottypes.cs (AddAnonymousType, GetAnonymousType): Anonymous types + are stored at top of normal hierarchy. + + * typemanager.cs (CSharpName): Filter anonymous types. + +2007-08-09 Marek Safar + + * expression.cs (StringConcat.Append): Handle 3 and more concatenation + as single Concat call. How could we miss that :-( + +2007-08-08 Marek Safar + + * expression.cs (ArrayCreation.CloneTo): Allocate exact size. + +2007-08-07 Miguel de Icaza + + * expression.cs: Fix the previous commit, the creation of the + arguments array list needs also to be conditional on the arguments + not being null. + + * class.cs: Add a little bit of help to help narrow down problems. + + * expression.cs (ArrayCreation.CloneTo): Argument can be null, do + not try to copy in that case. + + * driver.cs: When building SMCS, include a new different set of + default assemblies here. Do this here so we can control whether + to include the default assemblies with /noconfig. + +2007-08-03 Marek Safar + + A fix for bug #81979 + * expression.cs (TypeOf.GetAttributableValue): Check for type arguments + only. + +2007-08-03 Marek Safar + + A fix for bug #82300 + + * anonymous.cs (AnonymousContainer.Define): Don't define anything when + we are in probing scope. + +2007-08-03 Marek Safar + + A fix for bug #82301 + + * statement.cs (Catch.CloneTo): Clone blocks in the right order. + (Statement.CloneTo): Clone and not map children blocks. + +2007-08-03 Marek Safar + + A fix for bug #82299 + + * expression.cs (LocalVariableReference.CloneTo): Remap local info + variable too. + + * statement.cs (Statement.CloneTo): Clone variables before statements + to allow remaping of local variables. + +2007-08-03 Marek Safar + + A fix for bug #82296 + + * anonymous.cs, + * report.cs: Log crash details for future clone problems. + + * statement.cs (Return.Clone): Don't clone non-existent expression. + +2007-08-03 Raja R Harinath + + * class.cs (TypeContainer.AddBasesForPart): Make virtual. + (Class.AddBasesForPart): Move CS0537 check here from ... + * cs-parser.jay (class_declaration): ... here. Move calling of + 'AddBasesForPart' to ... + (class_bases): ... here. + (struct_declaration, interface_declaration): Update to changes. + +2007-08-02 Marek Safar + + A fix for bug #81923 + + * statement.cs (Using.ResolveLocalVariableDecls): Only non-user implicit + conversion is allowed. + +2007-08-02 Marek Safar + + A fix for bug #81564 + + * ecore.cs (EventExpr): Add IsBase handling. + + * expression.cs (BaseAccess.CommonResolve): Events can use base accessor + too. + +2007-08-02 Raja R Harinath + + Reduce some differences between cs-parser.jay in mcs/ and gmcs/. + * cs-parser.jay: Some whitespace cleanups. + (current_delegate): New. + (type_name): New. + (struct_declaration): Make similar to gmcs/cs-parser.jay -- add + a dummy code block, and use 'type_name' instead of 'member_name'. + (interface_declaration, class_declaration): Likewise. + (delegate_declaration): Likewise. Rearrange slightly and use + 'current_delegate'. + * cs-tokenizer.cs (handle_where): Rename from handle_constraints. + (GetKeyword): Update to change. Use '!foo' instead of 'foo == false'. + +2007-08-02 Marek Safar + + A fix for bug #82039 + + * ecore.cs (TypeLookup.GetSignatureForError): Use name when type is not + available. + + * typemanager.cs (CSharpName): Split to string overload. + +2007-08-02 Marek Safar + + * expression.cs, + * report.cs: Updated warning CS0472. + +2007-08-01 Marek Safar + + A fix for bug #82181 + * cs-parser.jay, + * cs-tokenizer.cs: Ignore partial keyword inside block expression. + +2007-08-01 Marek Safar + + A fix for bug #82277 + * statememnt.cs (Block.Clone): Don't clone explicit blocks twice. + +2007-08-01 Marek Safar + + ** C# 3.0 Type Inference (major bits are working) + + * anonymous.cs (AnonymousMethodExpression): Removed refactored fields. + (.ImplicitStandardConversionExists): Uses compatible. + (.ExplicitTypeInference): Infers type arguments based on explicit arguments + (.InferReturnType): New method. + (.Compatible): Refactored. + (.ResolveParameters): Uses factory to create resolved parameters. + (.CompatibleMethod): Add probing mode support. + (AnonymousContainer): Removed unused fields. Split Define and Resolve to + clearly distinguish between 2 different operations. + (LambdaMethod): Moved to lambda.cs. + (AnonymousMethod): Removed unused fields and methods. + (AnonymousDelegate): Simplified. + + * codegen.cs (ResolveTopBlock): Updated renamed Resolve to Define. + + * convert. cs (ImplicitConversionStandard): Compatible works differently. + + * delegate.cs (Delegate): New mehods to reduce code duplication. + (.GetConstructor): New method. + (.GetInvokeMethod): New method. + (DelegateCreation): Updated. + + * ecore.cs (ResolveOverloadExtensions): Don't crash when extension method + does not exist. + (OverloadResolve): Made probing little bit faster. + + * expression.cs (ParameterReference.DoResolveLValue): Reference can be null + when probing is on. + + * generic.cs (TypeInferenceContext): Dummy implementation. + + * iterators.cs: Updated after Resolve/Define rename. + + * lambda.cs (LambdaExpression) + (.ResolveParameters): Handles both type of arguments and type inference too. + + * parameter.cs (ImplicitLambdaParameter.Resolve): Sanity check. + (InflateTypes): Updated. + + * support.cs (InflateTypes): Changed signature and updated. + + * typemanager.cs (LookupMemberCache): Better dynamic type check. + (MemberLookup_FindMembers): More MS tricks. + (GetParameterData): Ditto. + (GetDelegateParameters): Uses quick path for dynamic types. + +2007-08-01 Marek Safar + + * class.cs (MethodData.Define): EmitContext is required for generic stuff + only. + +2007-07-31 Marek Safar + + * statement.cs (ProcessParameters): Don't crash when parameters have wrong + syntax. + +2007-07-26 Jb Evain + + * typemanager.cs (TypeManager.GetConstructor): Add a method overload + which takes a boolean 'report_errors', similar to the GetMethod. + (InitCodeHelpers): StructLayoutAttribute.ctor(int16) is not visible + in .net 2.1, do not report errors here. + + * typemanager.cs (TypeManager.InitCoreTypes): System.ArgIterator, + System.Runtime.CompilerServices.RequiredAttributeAttribute and + System.Runtime.CompilerServices.TypeForwardedToAttribute are internal + in .net 2.1. + + * typemanager.cs (TypeManager.InitCoreTypes): Move the resolution + of the type InternalsVisibleToAttribute before the first call + to CoreLookupType which is allowed to fail (third boolean parameter + to true). Because, during the resolution for a type that is not + immediately found, we try to check if the type is not defined in + a friend assembly, and to do so, we need the + InternalVisibleToAttribute. + +2007-07-23 Miguel de Icaza + + * expression.cs (Binary): Add support for the brain-dead CSC 2.x + feature that allows structs to be compared against null and inline + the result as true or false. + + Notice that the same code is not permitted inside a generic block + of code that would do: + + class Foo where T : struct { + bool Eval (T x) + { + return x == null; + } + } + + It is only allowed if the type of T is not bound (no where + clause). In my opinion, this CSC 2 behavior is broken but people + seem to be using it (IronRuby does, a few bug reports on bugzilla + have it and some people have complained about it). + + All of the users that depend on this behavior have code that is + very likely broken. + + * report.cs (Warning, Error): make these take object arguments, + not strings, as that allows us to take advantage of Format. + +2007-07-20 William Holmes + + * decl.cs: Changed MemberName.CountTypeArguments to also check the + Left member variable for the Count. + * doc.cs: Changed DocUtil.GetMethodDocCommentName to call + MemberName.CountTypeArguments to avoid a NRE. + + This code is contributed under the MIT X11 license + +2007-07-18 Marek Safar + + * cs-tokenizer.cs: Improved lambda parsing and removed old code. + +2007-07-18 Atsushi Enomoto + + * doc.cs : generic method arguments are written as ``x while generic + type arguments are `x. Combined with the previous change, fixed bug + #79706. + +2007-07-18 Raja R Harinath + + Fix #82120 + * expression.cs (Binary.ResolveOperator): When converting + 'a + (- b)' to 'a - b', ensure that the unary '-' is discarded. + +2007-07-18 Atsushi Enomoto + + * doc.cs : when T: or whatever x: is specified, it does not really + check the doc comment's syntax correctness. Fixed bug #82006. + +2007-07-18 Marek Safar + + * anonymous.cs (AnonymouseMethodExpression): Refactored to work with + LambdaExpression better. + + * cs-tokenizer.cs: Changed a way how we detect lambda parameters. + + * driver.cs (LambdaTypeParseTest): Removed, tested method is gone. + + * ecore.cs (Expression.MemberLookupFailed): Don't show currect context + as it can be generated. + + * expression.cs (Invocation.Error_InvalidArguments): Show correct + modifiers. + + * lambda.cs (LambdaExpression): Refactored to share same code with + AnonymousMethodExpression. + +2007-07-17 Marek Safar + + * anonymous.cs (MakeName): Include host name for easier debugging. + (LambdaMethod): New class for lambda spcecific stuff. + + * attribute.cs: Set EmitContext return type. + + * class.cs: Set EmitContext return type. + + * codegen.cs (EmitContext): Return type cannot be null to stop messing + with null/void meaning. + + * iterators.cs (ContainerType): Implemented. + + * rootcontext.cs: Set value of TypeManager.bool_type at early stage. + + * statement.cs (Return): Updated to lambda expressions. + (Block.CloneTo): Parent can be null. + 2007-07-13 Marek Safar A fix for bug #81917