+2006-04-28 Marek Safar <marek.safar@seznam.cz>
+
+ A fix for #78049
+ *class.cs (Method.FindOutBaseMethod): Base method cannot be property method.
+
+2006-04-28 Raja R Harinath <harinath@gmail.com>
+
+ * flowanalysis.cs (FlowBranching.MergeTopBlock): Don't create a
+ dummy UsageVector.
+
+ * flowanalysis.cs (UsageVector.MergeChild): Change FlowBranching
+ argument to two arguments: an usage-vector and a bool. Move call
+ to FlowBranching.Merge () ...
+ (FlowBranching.MergeChild, FlowBranching.MergeTopBlock): ... here.
+
+ * flowanalysis.cs (UsageVector.MergeChild): Move special-case
+ handling of loop and switch reachability to ...
+ (FlowBranchingLoop.Merge, FlowBranchingSwitch.Merge): ... these.
+
+2006-04-27 Raja R Harinath <harinath@gmail.com>
+
+ * flowanalysis.cs (FlowBranching.InLoop): Move special-case
+ handling to FlowBranchingLoop.InLoop.
+ (FlowBranching.InSwitch): Likewise, to FlowBranchingSwitch.
+
+2006-04-26 Marek Safar <marek.safar@seznam.cz>
+
+ A fix for #78115
+ anonymous.cs.cs (AnonymousMethod.DoResolve): Moved the check whether
+ anonymous method is allowed from AnonymousContainer here.
+
+ * attribute.cs, codegen.cs (EmitContext): Add IsAnonymousMethodAllowed.
+
+2006-04-24 Raja R Harinath <rharinath@novell.com>
+
+ Fix #78156
+ * flowanalysis.cs (MyBitVector.Or): Add null check on argument.
+
+2006-04-23 Marek Safar <marek.safar@seznam.cz>
+
+ A fix for #49011.
+ constant.cs (FloatConstant.Reduce): Add range checking for checked context.
+ (DoubleConstant.Reduce): Ditto.
+
+2006-04-23 Raja R Harinath <rharinath@novell.com>
+
+ * expression.cs (LocalVariableReference.DoResolveBase): Simplify.
+ Remove 'lvalue_right_side' argument. Move parts to ...
+ (LocalVariableReference.ResolveLocalInfo, LocalVariable.DoResolve)
+ (LocalVariable.DoResolveLValue): ... these.
+
+2006-04-21 Raja R Harinath <rharinath@novell.com>
+
+ Fix cs1655.cs
+ * codegen.cs (EmitContext.InRefOutArgumentResolving): Remove.
+ * expression.cs (EmptyExpression.LValueMemberOutAccess): New.
+ (LocalVariableReference.DoResolveBase): Use it to implement new
+ CS1655 check.
+ (IndexerAccess.DoResolveLValue): Handle LValueMemberOutAccess.
+ (Argument.Resolve): Simplify. Move CS1510 check ...
+ * ecore.cs (Expression.ResolveLValue): ... here.
+ (UnboxCast.DoResolveLValue): Handle LValueMemberOutAccess.
+ (PropertyExpr.DoResolveLValue): Likewise.
+ (FieldExpr.Report_AssignToReadonly): Likewise.
+ (FieldExpr.DoResolve): Add 'out_access' argument. Use
+ LValueMemberAccess or LValueMemberOutAccess on instance depending
+ on it.
+ (FieldExpr.DoResolveLValue): Pass 'out_access' argument to
+ DoResolve as appropriate.
+
+2006-04-20 Raja R Harinath <rharinath@novell.com>
+
+ Fix #75800
+ * expression.cs (Invocation.VerifyArgumentsCompat): Don't try
+ implicit conversions on 'out' and 'ref' arguments.
+
+ * expression.cs (Invocation.VerifyArgumentsCompat): Reorganize to
+ improve clarity. Remove dead code.
+
+ Fix #66031
+ * statement.cs (Block.UsageWarning): Allow VariableInfo to be null.
+ (Catch.Resolve): Resolve VarBlock if it exists.
+
+2006-04-19 Miguel de Icaza <miguel@novell.com>
+
+ * statement.cs (Foreach.EmitFinally): Do not emit the enumerator
+ twice, this was some residual code, the enumerator was emitted
+ properly in the two branche of if later.
+
+ Fixes #78031
+
+ Thanks to Martin for finding the source of the problem
+
+2006-04-19 Raja R Harinath <rharinath@novell.com>
+
+ * expression.cs (Cast.ResolveLValue): Remove. The result of a
+ cast is never an lvalue.
+ (Cast.DoResolve, Cast.ResolveRest): Combine.
+ (Argument.Emit): Simplify slightly. Move 'Expr is
+ IMemoryLocation' check ...
+ (Argument.Resolve): ... here.
+ (Argument.Error_LValueRequired): Remove. Inline into only user.
+
+ Simplifications. Fix cs0191-2.cs
+ * ecore.cs (FieldExpr.DoResolve): Move handling of CS0192, CS0198,
+ CS1649 and CS1651 to ...
+ (FieldExpr.Report_AssignToReadonly): ... this. Simplify by moving
+ the actual selection of the error code and message to a lookup
+ table. Add a dummy return value to simplify callsites.
+ (FieldExpr.ResolveLValue): Don't allow a constructor to write to
+ readonly fields of other instances of the same type. Move CS0197
+ warning from ...
+ * expression.cs (Argument.Resolve): ... here. Simplify code.
+ Ensure that ec.InRefOutArgumentResolving is only set during LValue
+ resolution of an out or ref argument. The code simplification
+ above uses this invariant.
+
+2006-04-18 Raja R Harinath <rharinath@novell.com>
+
+ Possibly fix #77752. Fix cs1690-[4-7].cs.
+ * ecore.cs (Expression.CheckMarshalByRefAccess): Renamed from
+ CheckMarshallByRefAccess. Drop parameter.
+ (FieldExpr.CheckMarshalByRefAccess): Update. Change CS1690 to a
+ warning.
+ (FieldExpr.DoResolve): Call CheckMarshalByRefAccess on
+ InstanceExpression.
+ * report.cs (AllWarnings): Add CS1690.
+ * expression.cs (Argument.Resolve): Use EmptyExpression.OutAccess
+ for ref access too.
+ (LocalVariableReference.DoResolveBase): Update.
+
+2006-04-09 Marek Safar <marek.safar@seznam.cz>
+
+ class.cs (MethodOrOperator): Moved common parts from method class.
+ detect obsolete attributes.
+ (Method.Define): Simplified as it reuses code from base.
+ (Constructor.ValidAttributeTargets): Fixed issue found during
+ refactoring.
+ (Destructor.ValidAttributeTargets): Fixed issue found during
+ refactoring.
+ (Operator): Finished refactoring set off by #78020. Operator class is now
+ ordinary method class.
+
+ * anonymous.cs: Updated.
+
+2006-04-09 Marek Safar <marek.safar@seznam.cz>
+
+ (Constructor.Emit): Don't emit the attributes twice.
+
+2006-04-09 Marek Safar <marek.safar@seznam.cz>
+
+ class.cs (Operator.Emit): Extracted code from MethodData to correctly
+ detect obsolete attributes.
+ (Method.CreateEmitContext): Moved to MethodOrOperator.
+
+2006-04-09 Marek Safar <marek.safar@seznam.cz>
+
+ A fix for #78048.
+ class.cs (TypeContainer.MemberCoreArrayList.DefineContainerMembers): Throw
+ customized exception to make crash detection easier.
+ (MethodOrOperator): Started to work on new base class for methods and
+ operators.
+ (Method): Derives from MethodOrOperator.
+ (Constructor.Emit): Emits its own attributes.
+ (AbstractPropertyEventMethod.Emit): Ditto.
+ (Operator): Derives from MethodOrOperator, will refactor fully in extra
+ patch.
+ (Operator.Emit): It's temporary more tricky than should be.
+
+ * doc.cs (GetMethodDocCommentName): Updated after operator changes.
+
+ * report.cs (InternalErrorException): Add ctor with inner exception.
+
2006-04-08 Marek Safar <marek.safar@seznam.cz>
A fix for #76744.