+2007-08-24 Atsushi Enomoto <atsushi@ximian.com>
+
+ * doc.cs : catch other types of exception than XmlException to
+ report CS1570. Fixed bug #82565.
+
+2007-08-23 Marek Safar <marek.safar@gmail.com>
+
+ * anonymous.cs (AnonymousMethodExpressin.ExplicitTypeInference):
+ The number of delegate parameters has to match.
+ (AnonymousMethodExpressin.VerifyParameterCompatibility): Handles generic
+ arrays.
+
+2007-08-21 Marek Safar <marek.safar@gmail.com>
+
+ * anonymous.cs (AnonymousMethod): Generate private anonymous method
+ to fix problem with private arguments.
+
+2007-08-20 Marek Safar <marek.safar@gmail.com>
+
+ * 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 <marek.safar@gmail.com>
+
+ * 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 <marek.safar@gmail.com>
+
+ * 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 <marek.safar@gmail.com>
+
+ * cs-tokenizer.cs (GetKeyword): Handle from keyword in a different way.
+
+2007-08-17 Marek Safar <marek.safar@gmail.com>
+
+ * 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 <marek.safar@gmail.com>
+
+ * modifier.cs (Check): Check all modifiers and not only accessibility
+ ones.
+
+2007-08-16 Marek Safar <marek.safar@gmail.com>
+
+ * ecore.cs (Expression.Error_ValueCannotBeConverted): Report always a
+ type and not an expression.
+
+2007-08-16 Marek Safar <marek.safar@gmail.com>
+
+ * statement.cs (Catch.Clone): Type and variable can be null.
+
+2007-08-16 Marek Safar <marek.safar@gmail.com>
+
+ 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 <marek.safar@gmail.com>
+
+ ** 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 <marek.safar@gmail.com>
+
+ ** 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 <marek.safar@gmail.com>
+
+ * expression.cs (StringConcat.Append): Handle 3 and more concatenation
+ as single Concat call. How could we miss that :-(
+
+2007-08-08 Marek Safar <marek.safar@gmail.com>
+
+ * expression.cs (ArrayCreation.CloneTo): Allocate exact size.
+
+2007-08-07 Miguel de Icaza <miguel@novell.com>
+
+ * 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 <marek.safar@gmail.com>
+
+ A fix for bug #81979
+ * expression.cs (TypeOf.GetAttributableValue): Check for type arguments
+ only.
+
+2007-08-03 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #82300
+
+ * anonymous.cs (AnonymousContainer.Define): Don't define anything when
+ we are in probing scope.
+
+2007-08-03 Marek Safar <marek.safar@gmail.com>
+
+ 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 <marek.safar@gmail.com>
+
+ 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 <marek.safar@gmail.com>
+
+ 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 <harinath@gmail.com>
+
+ * 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 <marek.safar@gmail.com>
+
+ A fix for bug #81923
+
+ * statement.cs (Using.ResolveLocalVariableDecls): Only non-user implicit
+ conversion is allowed.
+
+2007-08-02 Marek Safar <marek.safar@gmail.com>
+
+ 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 <harinath@gmail.com>
+
+ 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 <marek.safar@gmail.com>
+
+ 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 <marek.safar@gmail.com>
+
+ * expression.cs,
+ * report.cs: Updated warning CS0472.
+
+2007-08-01 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #82181
+ * cs-parser.jay,
+ * cs-tokenizer.cs: Ignore partial keyword inside block expression.
+
+2007-08-01 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #82277
+ * statememnt.cs (Block.Clone): Don't clone explicit blocks twice.
+
+2007-08-01 Marek Safar <marek.safar@gmail.com>
+
+ ** 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 <marek.safar@gmail.com>
+
+ * class.cs (MethodData.Define): EmitContext is required for generic stuff
+ only.
+
+2007-07-31 Marek Safar <marek.safar@gmail.com>
+
+ * statement.cs (ProcessParameters): Don't crash when parameters have wrong
+ syntax.
+
+2007-07-26 Jb Evain <jbevain@novell.com>
+
+ * 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 <miguel@novell.com>
+
+ * 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<T> 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 <billholmes54@gmail.com>
* decl.cs: Changed MemberName.CountTypeArguments to also check the