2007-08-24 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / mcs / ChangeLog
index f1fffc90b50669a29469d4eb52718a71b0c4e1af..11bc5b8564c12ec799622c654c28a2d7185f32b4 100644 (file)
@@ -1,5 +1,796 @@
+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 
+         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  <marek.safar@gmail.com>
+
+       * cs-tokenizer.cs: Improved lambda parsing and removed old code.
+
+2007-07-18  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * 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  <rharinath@novell.com>
+
+       Fix #82120
+       * expression.cs (Binary.ResolveOperator): When converting
+       'a + (- b)' to 'a - b', ensure that the unary '-' is discarded.
+
+2007-07-18  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * 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  <marek.safar@gmail.com>
+
+       * 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  <marek.safar@gmail.com>
+
+       * 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  <marek.safar@gmail.com>
+
+       A fix for bug #81917
+       * attribute.cs (AttributeTester.GetFixedBuffer): More robust testing.
+       
+       * class.cs (FixedField): Check whether field is in unsafe scope.
+
+       * ecore.cs (FieldExpr.DoResolve): Create fixed buffer expression here.
+       (FieldExpr.Emit): Fixed buffers cannot be volatile.
+
+       * expression.cs (ElementAccess.Resolve): Move fixed buffers resolve to
+       FieldExpr.
+       
+       * statement.cs (Fixed.Resolve): Simplified fixed buffers.
+               
+2007-07-13  Marek Safar  <marek.safar@gmail.com>
+
+       * cs-tokenizer.cs, class.cs, decl.cs, driver.cs, namespace.cs,
+       rootcontext.cs, expression.cs, statement.cs: Updated to use WarningLevel
+       from Report class.
+
+2007-07-13  Marek Safar  <marek.safar@gmail.com>
+
+       * ecore.cs (FieldExpr.AddressOf): Less confusing warning message.
+       
+2007-07-13  Marek Safar  <marek.safar@gmail.com>
+
+       * anonymous.cs (AnonymousMethodExpression): Parameters are r/o.
+       (AnonymousContainer.ResolveNoDefine): Another ec to aec flag conversion.
+       
+       * codegen.cs(EmitContext): Add ProbingMode flag.
+       
+       * delegate.cs (DelegateInvocation): Set few instance variables as r/o.
+       
+       * driver.cs: For now set both warning values.
+       
+       * ecore.cs (SimpleName): Name is readonly.
+       (MethodGroup.OverloadResolve): One quick path for probing.
+       
+       * expression.cs (Unary): Set Oper r/o.
+       (Binary): Set Oper r/o.
+       (ParameterReference): Set few instance variables as r/o.
+       (ParameterReference.DoResolveBase): Don't capture aruments when 
+       the probing is on.
+       (Invocation.CloneTo): Fixed typo, looks easy, yeah.
+       (Arglist): arguments are private.
+       (SizeOf): type is private and r/o.
+       (MemberAccess): arguments are private.
+
+       * report.cs: Enhanced reporting on/off capabilities.
+       
+       * lambda.cs: Uses ec.IsInProbingMode.
+       (ContextualReturn): Derives from return.
+       
+       * rootcontext.cs: For now set both warning values.
+       
+       * statement.cs (CloneContext.RemapBlockCopy): Remaps block to cloned
+       copy if one exists.
+       (Return.Resolve): Don't die immediately.
+       (Block.Resolve): Speed-up probing.
+       (Block.CloneTo): Clone only child blocks.
+
+Fri Jul 13 11:19:28 CEST 2007 Paolo Molaro <lupus@ximian.com>
+
+       * iterators.cs: reverted Miguel's latest change (r81925) as it
+       breaks the build in System.
+
+2007-07-13  Miguel de Icaza  <miguel@novell.com>
+
+       * iterators.cs (Yield.CheckContext): Check for the iterator type
+       also here as we can call into Yield even in codepaths that are not
+       directly checked by
+       (MethodOrOperator is the only path that was checked).
+
+       In addition to the standard check, use a more specific check for
+       constructors to report a more verbose error. 
+
+2007-07-12  Miguel de Icaza  <miguel@novell.com>
+
+       * ecore.cs (FieldExpr.AddressOf): Do not stop processing here,
+       report the warning and continue 
+
+       * statement.cs (Using.EmitLocalVariableDecls): We were leaving
+       values on the stack on the call to Emit.   Use EmitStatement if
+       possible, or using Emit + Pop if not possible.   Fixes #82064
+
+2007-07-12  Raja R Harinath  <rharinath@novell.com>
+
+       * expression.cs (Invocation.IsApplicable): Reorganize slightly to
+       avoid try...finally in some cases.
+
+2007-07-10  Marek Safar  <marek.safar@gmail.com>
+
+       * attribute.cs (Attribute.ResolveConstructor): Uses method group.
+       
+       * class.cs (ConstructorInitializer.Resolve): Use and keep method group
+       instead of method. Re-use standard error handling.
+       (ConstructorInitializer.Emit): Simplified.
+       
+       * delegate.cs: Updated after Invocation.EmitCall change.
+       
+       * ecore.cs (GetOperatorTrueOrFalse): Uses MethodGroupExpr only.
+       (SimpleName.SimpleNameResolve): Set and reset in_transit flag correctly.
+       (ExtensionMethodGroupExpr): Refactored to use same OverloadResolve
+       method and don't permanently changing input arguments.
+       (MethodGroupExpr): Introduced resolved best_candidate, when method group
+       is resolved it has one of the candidates is the best one which is later
+       used to emit. Removed a few unused method.
+       (MethodGroupExpr.MakeUnionSet): Moved from Invocation, it belongs here.
+
+       * expression.cs (StaticCallExpr.MakeSimpleCall): Uses method group.
+       (Binary.ResolveOperator): Ditto.
+       (ConditionalLogicalOperator.DoResolve): Ditto.
+       (Invocation): Uses method group.
+       (Invocation.DoResolve): Simplified.
+       (Invocation.EmitCall): Removed useless is_static.
+       (Invocation.Emit): Delegate to method group.
+       (Invocation.EmitStatement): Simplified.
+       (New): Uses method group.
+       (MemberAccess.DoResolve): Don't destroy original expression.
+       
+       * statement.cs (ForEach.Resolve): Use null for no method arguments.
+       
+2007-07-04  Marek Safar  <marek.safar@gmail.com>
+
+       * ecore.cs (VarExpr.DoResolveLValue): More restriction checks.
+       
+       * anonymous.cs,
+       * lambda.cs: Add custom error message type.
+
+2007-07-03  Marek Safar  <marek.safar@gmail.com>
+
+       * lambda.cs: Simplified little bit.
+       
+       * parameter.cs: Introduced ImplicitLambdaParameter.
+       (Parameters.CreateFullyResolved): New factory instead of ctor.
+       
+       * anonymous.cs,
+       * class.cs,
+       * delegate.cs: Updated parameter creation.
+       
+2007-07-03  Marek Safar  <marek.safar@gmail.com>
+
+       *  ecore.cs (SimpleName.GetSignatureForError): Display correctly generic
+       arguments.
+       
+       * generic.cs: Synchronized with gmcs.
+       
+2007-07-03  Marek Safar  <marek.safar@gmail.com>
+
+       * class.cs (Indexer): Check return type as soon as possible.
+       
+       * cs-parser.jay: Initialize implicit_value_parameter_type for interface
+       members too.
+       
+       * ecore.cs (VarExpr.DoResolveLValue): Set eclass value.
+       
+       * expression.cs (Invocation.Error_InvalidArguments): Show type only.
+       
+       * parameter.cs (Parameter): Use expression type when it is available.
+       
+       * support.cs (ReflectionParameters.ParameterDesc): Show an extension
+       method modifier for the first parameter only.
+
+2007-06-24  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #81938
+       * typemanager.cs (ChangeType): Fixed couple of char conversions.
+       
+       * constant.cs: Tide up an exception message.
+
+2007-06-22  Marek Safar  <marek.safar@gmail.com>
+
+       * ecore.cs (SimpleName.DoSimpleNameResolve): Better error reporting when
+       an uninitialized variable is used.
+       
+       * expression.cs (LocalVariableReference.DoResolve): Ditto.
+
+2007-06-22  Marek Safar  <marek.safar@gmail.com>
+
+       * ecore.cs (SimpleName.TypeOrNamespaceNotFound): Allow to override type
+       not found error handling.
+
+       * expression.cs (ArrayCreation): Removed redundant fields and little bit
+       simplified.
+       (ArrayCreation.ResolveArrayElement): To be ready to customization.
+       (ArrayCreation.DoResolve): Simplified.
+       (ImplicitlyTypedArrayCreation.DoResolve): Implicitly typed arrays have
+       its own resolve process.
+       (ImplicitlyTypedArrayCreation.ResolveArrayElement): Conversion magic.
+
+2007-06-20  Marek Safar  <marek.safar@gmail.com>
+
+       * namespace.cs (NamespaceEntry.Error_AmbiguousTypeReference): Print
+       more error details.
+       
+2007-06-20  Marek Safar  <marek.safar@gmail.com>
+
+       * cs-tokenizer.cs: Removed var related stuff.
+       
+       * ecore.cs (Expression.ResolveAsContextualType): Introduced new method.
+       (VarExpr): Changed to derive from SimpleName. VarExpr now behaves as
+       a type and a keyword at same time.
+       
+       * decl.cs (MembeName.GetTypeExpression): Create VarExpr when type name
+       matches to "var".
+       
+       * expression.cs (ImplicitlyTypedArrayCreation): New empty class for
+       implicitly typed arrays, more changes will follow.
+       
+       * statement.cs (LocalInfo.Resolve): Resolve type as contextual type.
+       
+2007-06-19  Marek Safar  <marek.safar@gmail.com>
+
+       * ecore.cs (VarExpr): Removed Handled field.
+       
+       * statement.cs (Using.ResolveLocalVariableDecls): Refactored to use
+       build-in assign functionality.
+       (ForEach.Resolve): Removed all implicitly typed local variable code and
+       simplified.
+       (ArrayForeach.Resolve): Infer implicitly typed local variable here.
+       (CollectionForeach.Resolve): Infer implicitly typed local variable here.
+
+2007-06-18  Marek Safar  <marek.safar@gmail.com>
+
+       * assign.cs: Removed implicitly typed local variable check.
+       
+       * expression.cs (LocalVariableReference.DoResolve): Add check for self
+       referencing implicitly typed local variable.
+       (LocalVariableReference.DoResolveLValue): Infer implicitly typed local
+       variable here.
+       
+       * statement.cs (Fixed): Removed unsupported implicitly typed local
+       variable code.
+
+2007-06-15  Marek Safar  <marek.safar@gmail.com>
+
+       * decl.cs (MemberName): Moved all Unbound stuff to parser.
+
+2007-06-14  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bugs #81855 and #76274
+       * attribute.cs (AttachTo): Always set owner for global attributes to
+       prefined owner.
+       
+       * ecore.cs (Error_TypeDoesNotContainDefinition): A type location can be
+       usefull too.
+       
+       * cs-parser.jay: Assembly and module attributes must precede all other
+       elements except using clauses and extern alias declarations.
+
+2007-06-13  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #81748
+       * cs-tokenizer.cs,
+       * expression.cs: More checks for non ISO-1 features.
+
+2007-06-12  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #81807
+       * statement.cs(Switch.TableSwitchEmit): Define null label when it's not
+       present inside switch statement and it is required by nullable check.
+
+2007-06-12  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #81840
+       * ecore.cs (SimpleName.ResolveAsTypeStep): Look for non-generic type
+       when type matching fails.
+       
+       * namespace.cs: Tiny error message change.
+
+2007-06-12  Marek Safar  <marek.safar@gmail.com>
+
+       * decl.cs (CheckAbstractAndExtern): Moved to MemberCore for easier error
+       reporting. Added automatic property check.
+       
+       * class.cs: Updated after CheckAbstractAndExtern relocation.
+       (AEventPropertyAccessor.GetSignatureForError): Customized.
+       
+2007-06-11  Marek Safar  <marek.safar@gmail.com>
+
+       * class.cs (DefineBaseTypes): Base type can be undefined.
+       
+       * ecore.cs (TypeLookup): Minor refactoring.
+       (DoResolveAsTypeStep): Removed redundant check.
+
+       * namespace.cs (Lookup): Removed redundant check.
+               
+       * rootcontext.cs (BootstrapCorlib_ResolveType): Uses normal 
+       ResolveAsTypeTerminal step.
+       (BootstrapCorlib_*): Simplified.
+       (PopulateCoreType): Core types can be now external.
+
+2007-06-07  Marek Safar  <marek.safar@gmail.com>
+
+       * anonymous.cs (VerifyExplicitParameterCompatibility): Add flag to do
+        verification only.
+        (InferTypeArguments): Infers anonymous expression type arguments.
+        (Compatible): Split to Compatible and InferTypeArguments. 
+       
+       * lambda.cs: Updated.
+
+2007-06-08  Marek Safar  <marek.safar@gmail.com>
+
+       * anonymous.cs (AnonymousContainer): Marked as compiler generated.
+
+2007-06-07  Raja R Harinath  <harinath@gmail.com>
+
+       Fix #80477, cs0135-2.cs, cs0135-3.cs
+       * statement.cs (ToplevelBlock.ProcessParameters): Add parameter
+       names to the "known" variables list.
+       (Block.CheckInvariantMeaningInBlock): Handle the fact the
+       parameter names are also "known".
+       (Block.CheckError136): Remove.
+       (ExplicitBlock.CloneTo): New.  Set 'known_variables' in target to
+       null.
+
+2007-06-07  Marek Safar  <marek.safar@gmail.com>
+
+       * ecore.cs (MethodGroupExpr.OverloadResolve): Print full method definition.
+
+2007-06-06  Marek Safar  <marek.safar@gmail.com>
+
+       * ecore.cs (SimpleName.Emit): Emitting unresolved simple name is
+       internal error not an user error.
+        
+       * expression.cs (IsApplicable): Refactored to make debugging easier.
+
+       * support.cs: More tricks for non-mono runtimes.
+       
+       * typemanager.cs (CoreLookupType): Made public.
+       (InitSystemCore): All linq specific stuff moved to linq.cs
+
+2007-06-05  Marek Safar  <marek.safar@gmail.com>
+
+       * typemanager.cs (CSharpSignature): One more missing build-in types
+       replacement.
+       More tricks for non-mono runtime.
+
+2007-06-05  Raja R Harinath  <harinath@gmail.com>
+
+       * statement.cs (Block.CheckError136_InParents): Remove.
+       (Block.AddVariable): Use GetParameterInfo instead.
+       (ToplevelBlock.ProcessArguments): Likewise.
+
 2007-06-04  Raja R Harinath  <rharinath@novell.com>
 
+       * statement.cs (ToplevelBlock.CloneTo): New.  Copy over parameter
+       information too.
+       (ToplevelBlock.GetParameterInfo): Split out of ...
+       (ToplevelBlock.GetParameterRefernce): ... this.
+       (ToplevelBlock.ParameterMap): Remove.
+       * expression.cs (ParameterReference): Update to use
+       ToplevelParameterInfo.
+
+       * statement.cs (ToplevelBlock.ProcessParameters): Workaround some
+       regression.
+
        * flowanalysis.cs (FlowBranching.CheckOutParameters): Move ...
        * statement.cs (ToplevelBlock.CheckOutParameters): ... here.