+2008-06-27 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #401020
+ * ecore.cs: Both types and modifiers have to match for ref and out arguments
+
+2008-06-27 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #398319
+ * cs-parser.jay: Implemented undocumented base access expression inside
+ anonymous types.
+
+2008-06-26 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #404227
+ * cs-parser.jay: Parse namespace declaration using qualified identifier.
+
+2008-06-26 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #404227
+ * convert.cs: Fixed explicit array to interface cast.
+
+2008-06-26 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #403894
+ * delegate.cs: Mutate DelegateInvocation type.
+
+2008-06-26 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #379348
+ * delegate.cs: Box a load of generic parameters.
+
+2008-06-26 Marek Safar <marek.safar@gmail.com>
+
+ * expression.cs: Add an array creation arguments mutate.
+
+2008-06-26 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #386068
+ * anonymous.cs, expression.cs: Emit correctly hoisted expression tree
+ parameter.
+
+2008-06-25 Marek Safar <marek.safar@gmail.com>
+
+ * ecore.cs, expression.cs: Fixed broken TypeCast clone, implemented few more
+ CloneTo.
+
+2008-06-25 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #403518
+ * delegate.cs: Type correctly anonymous method new invocation.
+
+2008-06-24 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #394826
+ * anonymous.cs: Fully qualify members when resolving anonymous type internal
+ calls.
+
+2008-06-24 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #394826
+ * anonymous.cs, iterators.cs: Construct generic storey only when is really
+ needed.
+
+2008-06-24 Marek Safar <marek.safar@gmail.com>
+
+ * class.cs: Clone indexer parameters for localized capturing.
+
+2008-06-24 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #402379
+ * expression.cs: Don't crash when an object initializer resolve fails.
+
+2008-06-24 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #402888
+ * expression.cs: Mutate conditional expression.
+
+2008-06-24 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #401012
+ * class.cs: Keep StructLayout in shared container.
+
+2008-06-24 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #400438
+ * decl.cs, class.cs: Only properties can be automatically implemented.
+
+2008-06-24 Marek Safar <marek.safar@gmail.com>
+
+ * statement.cs (ChangeToIterator): Copy also labels.
+
+2008-06-23 Marek Safar <marek.safar@gmail.com>
+
+ * ecore.cs: Pass type argument details to parent extension method.
+
+2008-06-23 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #375966
+ * delegate.cs: Fixed IsTypeCovariant generic type conversions.
+
+2008-06-23 Raja R Harinath <harinath@hurrynot.org>
+
+ * Makefile (bootstrap-libs): Pass NO_DIR_CHECK to sub-make.
+
+2008-06-22 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #394347
+ * anonymous.cs: Cache compatible delegates as compatibility check produces
+ a new method every time.
+
+2008-06-20 Marek Safar <marek.safar@gmail.com>
+
+ * anonymous.cs: Propagate storey reference for single references.
+
+2008-06-20 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #387615
+ * assign.cs, expression.cs: Correctly clone compound assignment.
+
+2008-06-19 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #359611, #359604
+ * anonymous.cs: Mutate all types of hoisted parameters.
+
+2008-06-19 Marek Safar <marek.safar@gmail.com>
+
+ * typemanager.cs, lambda.cs, parameter.cs, ecore.cs, linq.cs, class.cs
+ delegate.cs, iterators.cs, cs-parser.jay, assign.cs, anonymous.cs, driver.cs
+ expression.cs, codegen.cs, statement.cs
+
+ Fixes bugs: #318652, #323223, #234779, #325069, #325476, #332532, #334465,
+ #345907, #349190, #353276, #355256, #359617, #378542, #384584, #396530
+
+ ** Anonymous methods, lambda expressions rewrite **
+
+ Anonymous expressions are now resolved when an explicit block is resolved
+ and they don't require any registration procedure anymore. Further,
+ anonymous methods are defined when explicit block is emitted which allows
+ better control of whole process and opens possibilities for more
+ optimizations as well as alternative to reverse whole process.
+
+ A concept of `MutateHoistedGenericType' was introduced to keep the resolve
+ process consistent and to correctly emit hoisted generic methods when they
+ have at least 1 hoisted variable.
+
+2008-06-17 Martin Baulig <martin@ximian.com>
+
+ * class.cs: Also emit the `[DebuggerHidden]' attribute on the main
+ iterator method.
+ (AbstractPropertyEventMethod.IsDebuggerHidden): New protected
+ virtual property; check it in Emit().
+ (PropertyMethod.IsDebuggerHidden): Override, check whether we're
+ an iterator.
+ (MethodOrOperator.ResolveMethods): Set `DEBUGGER_HIDDEN' if we're
+ an iterator.
+ (Indexer.Define): Likewise.
+
+2008-06-17 Marek Safar <marek.safar@gmail.com>
+
+ * convert.cs: Don't use IsInterface on type arguments.
+
+ * delegate.cs: DelegateInvocation uses MethodInfo.
+
+ * parameter.cs: Removed IsTypeParameter.
+
+ * generic-mcs.cs: More missing stuff.
+
+2008-06-16 Martin Baulig <martin@ximian.com>
+
+ * modifiers.cs
+ (Modifiers.DEBUGGER_HIDDEN): New public const.
+
+ * typemanager.cs
+ (TypeManager.GetDebuggerHiddenAttribute): New public static method.
+
+ * class.cs
+ (MethodOrOperator.Emit): Check `Modifiers.DEBUGGER_HIDDEN'.
+ (AbstractPropertyEventMethod): Likewise.
+ (Constructor.Emit): Likewise.
+ (SourceMethod.SetCompilerGenerated): Removed.
+
+ * iterator.cs: Set `Modifiers.DEBUGGER_HIDDEN' everywhere except
+ on MoveNext().
+
+ * anonymous.cs
+ (RootScopeInfo.DoDefineMembers): Set `Modifiers.DEBUGGER_HIDDEN'
+ if we're an `IteratorHost'.
+ (AnonymousMethodMethod..ctor): Don't set
+ `Modifiers.COMPILER_GENERATED'; csc only sets this on the class,
+ not on the method.
+
+2008-06-16 Marek Safar <marek.safar@gmail.com>
+
+ * statement.cs: Clean-up foreach statements.
+
+2008-06-12 Marek Safar <marek.safar@gmail.com>
+
+ * class.cs: Stop using public method which should not exist.
+
+2008-06-11 Martin Baulig <martin@ximian.com>
+
+ * location.cs
+ (Location.LookupFile): Add `CompilationUnit' argument; when given
+ a relative file name, make it relative to the directory the .cs
+ file is located in instead of using the current directory.
+
+2008-06-11 Martin Baulig <martin@ximian.com>
+
+ * class.cs
+ (IMethodData.EmitExtraSymbolInfo): Added `SourceMethod' argument.
+ (MethodOrOperator.EmitExtraSymbolInfo): Likewise.
+ (SourceMethod.SetRealMethodName): Moved here from the symbol writer.
+ (SourceMethod.SetCompilerGenerated): Likewise.
+
+2008-06-11 Marek Safar <marek.safar@gmail.com>
+
+ * codegen.cs, driver: Only write symbol file when it's asked for.
+
+2008-06-11 Marek Safar <marek.safar@gmail.com>
+
+ * codegen.cs: Don't use assembly writer error handling for symbol writer.
+
+2008-06-10 Martin Baulig <martin@ximian.com>
+
+ * symbolwriter.cs: Reflect latest MarkSequencePoint() API changes.
+
+2008-06-09 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #316290
+ * expression.cs: Include decimal operators in predefined table.
+
+ * parameters.cs: More readonlyness.
+
+2008-06-09 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #397213
+ * cs-parser.jay: One more missing current_local_parameters reset.
+
+2008-06-09 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #396633
+ * class.cs: Host backing field in partial container.
+
+2008-06-09 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #397068
+ * expression.cs: Check both operand types when predefined operator is used.
+
+2008-06-05 Martin Baulig <martin@ximian.com>
+
+ Merged the `debugger-kahalo' branch.
+
+ * class.cs
+ (MethodData.Emit): Call SymbolWriter.SetCompilerGenerated() if
+ we're an iterator method.
+ (SourceMethod): Reflect latest symbol writer changes;
+ SymbolWriter.OpenMethod() now takes a `ICompileUnit' argument and
+ now `start_row' and `end_row'.
+ (Constructor.Emit): Fix the logic whether to emit symbol information.
+
+ * iterator.cs: Call SymbolWriter.SetCompilerGenerated() on all the
+ generated methods.
+
+ * location.cs
+ (CompilationUnit): New public class; derives from `SourceFile'.
+ (SourceFileEntry.DefineSymbolInfo): New public method.
+ (SourceFileEntry.SetChecksum): New public method.
+ (Location): Encode hidden line numbers by using `column == 255';
+ the .ctor now accepts `column == -1' to mark a hidden line number.
+ (Location.Hidden): New public property.
+ (Location.CheckPoint): Add `CompilationUnit'.
+ (Location.SourceFiles): Change return type to `CompilationUnit[]'.
+ (Location.Push): Add `CompilationUnit compile_unit' argument.
+ (Location.CompilationUnit): New public property.
+
+ * statement.cs
+ (ToplevelBlock.Emit): Add `ec.Mark (EndLocation)'.
+
+ * cs-parser.jay: `SourceFile' -> `CompilationUnit'.
+
+ * driver.cs: `SourceFile' -> `CompilationUnit'.
+
+ * cs-tokenizer.cs: `SourceFile' -> `CompilationUnit'.
+
+ * namespace.cs: `SourceFile' -> `CompilationUnit'.
+
+ * cs-tokenizer.cs: Add support for `#pragma checksum' and
+ `#line hidden'.
+
+ * symbolwriter.cs
+ (SymbolWriter.MarkSequencePoint): Take a `Location' and use the
+ new symbol writer API to also pass the file.
+
+2008-06-05 Marek Safar <marek.safar@gmail.com>
+
+ * statement.cs: Emit catch variable assignment using variable expression.
+
+2008-06-05 Marek Safar <marek.safar@gmail.com>
+
+ * ecore.cs, expression.cs, statement.cs: Make TemporaryVariable compatible
+ with other variable types.
+
+2008-06-04 Marek Safar <marek.safar@gmail.com>
+
+ * ecore.cs, expression.cs, statement.cs, typemanager.cs: Removed custom
+ GetLength method emit, it breaks resolve rules.
+
+2008-06-02 Atsushi Enomoto <atsushi@ximian.com>
+ Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #395542
+ * cs-parser.jay: The trailing comma is allowed in anonymous type member
+ declaration.
+
+2008-06-02 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #395287
+ * class.cs, modifiers.cs: Automatic properties method base modifiers checks.
+
+2008-05-31 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #395845
+ * class.cs, nullable.cs: User unary operator is allowed to have nullable and
+ non-nullable parameter type.
+
+2008-05-31 Marek Safar <marek.safar@gmail.com>
+
+ * class.cs: Handle contructor initializer as a statement in top-level block.
+
+2008-05-30 Marek Safar <marek.safar@gmail.com>
+
+ * attribute.cs: Don't mix old and new corlib types when emitting corlib
+ security attributes.
+
+2008-05-24 Marek Safar <marek.safar@gmail.com>
+
+ * ecore.cs, expression.cs: Small IVariable refactoring.
+
+2008-05-22 Marek Safar <marek.safar@gmail.com>
+
+ * assign.cs (LocalTemporary): Implemented CreateExpressionTree.
+
+2008-05-21 Marek Safar <marek.safar@gmail.com>
+
+ * cs-parser.jay: Removed redundant catch type check.
+
+2008-05-21 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #390372
+ * nullable.cs: Set correct return type.
+
+2008-05-21 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #391062
+ * typemanager.cs: Fixed crash when comparing null types.
+
+2008-05-21 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #391871
+ * cs-parser.jay: Better error handling for invalid catch type.
+
+2008-05-20 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #392155
+ * cs-tokenizer.cs: Fixed casting of byte and decimal expression.
+
+2008-05-15 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #390666
+ * ecore.cs (BetterExpressionConversion): Unwrap each Expression<T>
+ expressions.
+
+2008-05-15 Marek Safar <marek.safar@gmail.com>
+
+ * class.cs, expression.cs, statement.cs: Removed a hack, setting block flag
+ in getter.
+
+2008-05-13 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #389625
+ * delegate.cs, generic.cs: Some progress on method group return type
+ inference.
+
+2008-05-13 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #378419
+ * namespace.cs: Inspect also parent namespaces not only namespace entries.
+
+2008-05-12 Marek Safar <marek.safar@gmail.com>
+
+ * class.cs (Constructor): Added IsCompilerGenerated.
+
+2008-05-12 Marek Safar <marek.safar@gmail.com>
+
+ * expression.cs: Enum binary operators can accept non-enum operand only when
+ is implicitly convertible to underlying type.
+
+2008-05-12 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #389272
+ * support.cs: Workaround System.InvalidOperationException for enums.
+
+2008-05-12 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #389073
+ * convert.cs: More undocumented explicit IntPtr/UIntPtr conversions.
+
+2008-05-10 Marek Safar <marek.safar@gmail.com>
+
+ * driver.cs: Split Parse.
+
+ * location.cs (LookupFile): Uses string.Empty.
+
+2008-05-07 Marek Safar <marek.safar@gmail.com>
+
+ * expression.cs, parameter.cs: Small ParameterReference clean up.
+
+2008-05-07 Marek Safar <marek.safar@gmail.com>
+
+ * anonymous.cs, codegen.cs, convert.cs, ecore.cs: Removed uber ugly TempEc
+ hack. Fixes #387502.
+
+2008-05-06 Martin Baulig <martin@ximian.com>
+
+ * class.cs (Constructor.Emit): Fix the logic whether to emit
+ symbol information.
+
+2008-05-06 Raja R Harinath <harinath@hurrynot.org>
+
+ Fix #385503
+ * iterators.cs (Iterator.CurrentBlock.DoEmit): Don't emit
+ InvalidOperationException when the iterator is before the start or
+ after the end.
+
+2008-05-06 Marek Safar <marek.safar@gmail.com>
+
+ * nullable.cs (NullCoalescingOperator): Result is underlying type of left,
+ when left is nullable type.
+
+2008-05-06 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #386628
+ * expression.cs (LocalVariableReference): Continue in resolving when
+ variable is not assigned.
+
+2008-05-05 Marek Safar <marek.safar@gmail.com>
+
+ * nullable.cs, statement.cs (Unwrap): Store non-variable expression in all
+ nullable operations.
+
+2008-05-04 Marek Safar <marek.safar@gmail.com>
+
+ * nullable.cs, statement.cs (Unwrap): Don't duplicate variable expressions,
+ it saves many redundant temporary variables for nullable operations.
+
+2008-05-03 Marek Safar <marek.safar@gmail.com>
+
+ * assign.cs: EventAddOrRemove is a statement and cannot have a type.
+
+ * cfold.cs, constant.cs, expression.cs: Share Error_OperatorCannotBeApplied
+ method.
+
+ * nullable.cs: Constant coalescing operator optimizations.
+
+2008-05-03 Marek Safar <marek.safar@gmail.com>
+
+ * constant.cs: Use unsigned conversion for values which are unsigned only.
+
2008-05-03 Marek Safar <marek.safar@gmail.com>
* convert.cs, literal.cs, nullabel.cs, typemanager.cs: Implemeted null