2006-04-28 Marek Safar <marek.safar@seznam.cz>
[mono.git] / mcs / gmcs / ChangeLog
index 0934bf0c9bfec7e4bd656e9a8886201a1d4805fa..d2debc4744cad9b95bf89dc622f70c2a1843982f 100644 (file)
@@ -1,3 +1,152 @@
+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