In mcs and gmcs:
[mono.git] / mcs / gmcs / ChangeLog
index ca3822125ea10e65e0ffc8e6b0b0646064d099bf..57563a59a542185966a55c2a0d188a6688d259dd 100644 (file)
@@ -1,3 +1,593 @@
+2006-07-28  Raja R Harinath  <rharinath@novell.com>
+
+       * class.cs (TypeContainer.AddMemberType): Rename from
+       AddToTypeContainer.
+       (TypeContainer.AddMember): Rename from AddToMemberContainer.
+       (AddTypeContainer): New.  Combine AddClassOrStruct and
+       AddInterface.
+       (AddPartial): Update.  Add 'is_partial' argument.
+       * roottypes.cs: Update to changes.
+       * cs-parser.jay (push_current_class): New helper for handling
+       current_container and current_class.
+       (struct_declaration, interface_declaration, class_declaration):
+       Use it.
+
+2006-07-26  Raja R Harinath  <rharinath@novell.com>
+
+       * roottypes.cs: Rename from tree.cs.
+
+       Rename RootContext.Tree.Types to RootContext.ToplevelTypes.
+       * tree.cs (Tree, ITreeDump): Remove types.
+       * rootcontext.cs (tree, Tree): Remove fields.
+       (root, ToplevelTypes): New.
+       * *.cs: Update to rename.
+
+       * tree.cs (Tree.RecordDecl): Remove.
+       (RootTypes.AddToTypeContainer): Record the toplevel type in its
+       namespace here.
+       * class.cs, cs-parser.jay: Remove mention of RecordDecl.
+
+2006-07-23  Raja R Harinath  <harinath@gmail.com>
+
+       * codegen.cs (EmitContext.Flags): Move InCatch, InFinally,
+       DoFlowAnalysis and OmitStructFlowAnalysis here.
+       (ec.With): Rename from WithUnsafe and generalize.
+       (ec.WithCheckState): Remove.  All users can be handled by 'With'.
+       (ec.WithFlowAnalyis): New.
+       * ecore.cs, expression.cs, statement.cs: Update.
+
+2006-07-22  Raja R Harinath  <harinath@gmail.com>
+
+       * statement.cs (Block.ResolveMeta): Simplify slightly.
+
+       * codegen.cs (EmitContext.Flags): New enum.  Used to represent the
+       multiple boolean fields.  Convert InUnsafe, constant_check_state,
+       check_state to flags.
+       (CheckState, ConstantCheckState): Update.
+       (InUnsafe): New read-only property.
+       (FlagsHandle): Rename from CheckStateHandle and convert to handle
+       arbitrary flags.
+       (WithUnsafe): New helper similar to WithCheckState.
+       * statement.cs (Block.ResolveMeta): Use WithUnsafe.
+       (Unsafe.Resolve, Unsafe.DoEmit): Likewise.
+
+2006-07-21  Raja R Harinath  <rharinath@novell.com>
+
+       Make comparisons use the same IL irrespective of whether they're
+       in a 'checked' or 'unchecked' context: one of the issues in #78899
+       * codegen.cs (EmitContext.CheckState): Make read-only property.
+       (EmitContext.ConstantCheckState): Likewise.
+       (EmitContext.CheckStateHandle, EmitContext.WithCheckState): New
+       helper that implement a save/restore stack for CheckState
+       values.  This is the only way to change check-state.
+       * ecore.cs (Expression.ExpressionToArrayArgument): Use WithCheckState.
+       * expression.cs (CheckedExpr.DoResolve, CheckedExpr.Emit): Likewise.
+       (CheckedExpr.EmitBranchable): New forwarding method.
+       (UnCheckedExpr): Likewise.
+       * statement.cs (Block.ResolveMeta): Use WithCheckState.
+       (Unchecked.Resolve, Unchecked.DoEmit): Likewise.
+       (Checked.Resolve, checked.DoEmit): Likewise.
+
+2006-07-21  Martin Baulig  <martin@ximian.com>
+
+       * generic.cs (TypeManager.InferType): When inferring an array
+       type, also allow IList<T> and ICollection<T>.  Fixes #78900.
+
+2006-07-21  Martin Baulig  <martin@ximian.com>
+
+       * generic.cs (TypeManager.IsIEnumerable): Renamed into IsIList()
+       and allow IList`1 and all its base interfaces.
+
+       * convert.cs (Convert.ImplicitReferenceConversion): Allow
+       converting from an array-type of T to IList<T>.
+
+2006-07-21  Martin Baulig  <martin@ximian.com>
+
+       * ecore.cs (SimpleName.DoSimpleNameResolve): Added CS0307 check.
+
+2006-07-20  Miguel de Icaza  <miguel@novell.com>
+
+       * anonymous.cs: Cache the resolved anonymous delegate, and return
+       this so that the ResolveTopBlock is only triggered once, not
+       twice.
+
+       Currently we trigger ResolvetopBlock twice due to a first pass of
+       argument check compatibility, and a second pass that does the
+       actual resolution.   
+
+2006-07-16  Marek Safar  <marek.safar@seznam.cz>
+
+       A fix for #70506
+       * driver.cs (MainDriver): When a file extension is missing,
+       use a default one.
+
+2006-07-15  Marek Safar  <marek.safar@seznam.cz>
+
+       * annonymous.cs (AnonymousMethod.CreateScopeType): Fixed nested type
+       modifiers.
+       * rootcontext.cs (Reset): Add helper_classes.
+
+2006-07-15  Marek Safar  <marek.safar@seznam.cz>
+
+       A fix for #78860
+       * statement.cs (Switch.SimpleSwitchEmit): Handle case null at any position
+       correctly.
+
+2006-07-13  Miguel de Icaza  <miguel@novell.com>
+
+       * statement.cs (Lock): Handle expressions of type
+       TypeManager.null_type specially.  Fixes #78770
+
+2006-07-08  Marek Safar  <marek.safar@seznam.cz>
+
+       * expression.cs (Binary.ResolveOperator): Don't crash when null is assigned
+       to an event.
+
+2006-07-08  Marek Safar  <marek.safar@seznam.cz>
+
+       * attribute.cs (AttributeTester.GetMethodObsoleteAttribute): Fixed to look
+       for accessors as well.
+       * ecore.cs (EventExpr): Add AccessorTable.
+
+2006-07-03  Martin Baulig  <martin@ximian.com>
+
+       * ecore.cs (UnboxCast.Emit): Also use `Unbox_Any' for generic
+       instances of value types.
+
+       * convert.cs (Convert.ExplicitConversion): Correctly handle
+       object->nullable conversions.   
+
+2006-07-01  Marek Safar  <marek.safar@seznam.cz>
+
+       A fix for #78738
+       * attribute.cs, class.cs, ecore.cs : Add missing location of related symbol
+       for CS0122 where appropriate.
+       * typemanager.cs (IsNestedChildOf): Type can be null in the case of top
+       level attributes.
+       (Filter): Assembly can be null in the case of top level attributes.
+
+2006-06-28  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #78716
+       * generic.cs (TypeManager.InferParamsTypeArguments): If there are
+       no arguments, return 'false': nothing can be inferred.
+
+2006-06-25  Marek Safar  <marek.safar@seznam.cz>
+
+       A fix for #78690
+
+       * ecore.cs (Expression.MemberLookupFailed): Don't crash when failed lookup
+       is done at global level.
+
+2006-06-24  Marek Safar  <marek.safar@seznam.cz>
+
+       A fix for #77002, Implemented TypeForwarder support.
+
+       * attribute.cs (Attribute.GetArgumentType): Reads type argument.
+       * codegen.cs (AssemblyClass.ApplyAttributeBuilder): Add TypeForwarder
+       attribute handling.
+       * expression.cs (TypeOf.TypeArgument): Exposes typeof type.
+       * typemanager.cs (): Add type_forwarder_attr_type.
+
+2006-06-24  Marek Safar  <marek.safar@seznam.cz>
+
+       * report.cs: Add CS0469 warning.
+
+2006-06-22  Martin Baulig  <martin@ximian.com>
+
+       * class.cs
+       (TypeContainer.GetNormalBases): Also use ResolveAsBaseTerminal()
+       for interfaces; fixes #78686, which is a modification of #78380
+       with interfaces instead of classes.
+
+2006-06-21  Martin Baulig  <martin@ximian.com>
+
+       * codegen.cs (CodeGen.Save): Moved the symbol file generation into
+       the `try'-block, so we also report CS0016 etc. there.
+
+2006-06-21  Martin Baulig  <martin@ximian.com>
+
+       * ecore.cs (FieldExpr.EmitAssign, FieldExpr.AddressOf): Correctly
+       handle SetAssigned() and SetMemberIsUsed() for generic types;
+       fixes #77545.
+
+2006-06-21  Martin Baulig  <martin@ximian.com>
+
+       * delegate.cs
+       (Delegate.VerifyMethod): Allow `params' methods; fixes #78678.
+
+2006-06-21  Martin Baulig  <martin@ximian.com>
+
+       * expression.cs (Unary.ResolveOperator): In `Operator.AddressOf',
+       also report CS1686 for parameters.
+
+2006-06-21  Martin Baulig  <martin@ximian.com>
+
+       * statement.cs (GotoCase.Resolve): Report a warning (CS0469)
+       instead of an error if the value is not implicitly convertible to
+       the switch types; fixes #77964.
+
+2006-06-21  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #78673
+       * class.cs (FieldBase.ResolveInitializer): Stop resolution if
+       FieldBuilder is null.
+
+       Fix #78662
+       * expression.cs (Binary.CheckShiftArguments): Don't overwrite original
+       'left' and 'right' before error-checking.
+
+2006-06-19  Martin Baulig  <martin@ximian.com>
+
+       * convert.cs
+       (Convert.ImplicitConversionStandard): Cleanup and correctly
+       implement nullable conversions.
+       (Convert.ImplicitStandardConversionExists): Likewise.
+       (Convert.ExplicitConversion): Likewise.
+
+2006-06-19  Martin Baulig  <martin@ximian.com>
+
+       * generic.cs
+       (Nullable.Wrap.Create, Nullable.Unwrap.Create): New public static
+       methods; make the ctors protected.
+
+2006-06-19  Martin Baulig  <martin@ximian.com>
+
+       Fixed #78380; added gtest-273.cs.
+
+       * ecore.cs
+       (Expression.ResolveAsBaseTerminal): Move the constraint checking
+       into ResolveAsTypeTerminal().
+
+       * generic.cs
+       (ConstraintChecker.HasDefaultConstructor): Use the non-cache based
+       TypeManager.FindMembers() to check for the default ctor.
+
+2006-06-18  Marek Safar  <marek.safar@seznam.cz>
+
+       * generic.cs: Fixed NullableInfo accessibility.
+
+2006-06-16  Martin Baulig  <martin@ximian.com>
+
+       * generic.cs
+       (Constraints.InflatedConstraints.inflate): Correctly inflate
+       generic types; fixes #78400.
+
+2006-06-16  Juraj Skripsky  <js@hotfeet.ch>
+
+       * ecore.cs (SimpleName.Error_ObjectRefRequired): Do not truncate the name.
+       Fixed bug #78601.
+       (MemberExpr.EmitInstance): Use GetSignatureForError () to get full name.
+       (FieldExpr.DoResolve): likewise.
+       (PropertyExpr.InstanceResolve): likewise.
+       (EventExpr.InstanceResolve): likewise. 
+
+2006-06-15  Martin Baulig  <martin@ximian.com>
+
+       * statement.cs
+       (SwitchLabel.ResolveAndReduce): Added `bool allow_nullable'
+       argument; always allow a `null' label if true.
+       (Switch.SwitchGoverningType): Take an `Expression expr' argument.
+       (Switch.TableSwitchEmit, Switch.SimpleSwitchEmit): Check whether
+       we have a `null' label and mark the new `null_target' label;
+       default to the `default' label.
+       (Switch.Resolve): Add support for nullable types.  Fixes #78630.
+
+2006-06-15  Martin Baulig  <martin@ximian.com>
+
+       * class.cs (Operator.Define): Allow an implicit/explicit operator
+       to convert to/from a nullable value of the enclosing type.
+
+       * generic.cs (TypeManager.IsNullableTypeOf): New public method.
+       (Nullable.Unwrap, Nullable.Wrap): Make these classes public.
+
+       * convert.cs
+       (Convert.ImplicitStandardConversionExists): Add support for lifted
+       implicit/explicit conversions.
+       (Convert.ImplicitConversionStandard): Likewise.
+
+2006-06-13  Martin Baulig  <martin@ximian.com>
+
+       * ecore.cs (SimpleName.DoSimpleNameResolve): Check whether we have
+       type arguments and create a ConstructedType if necessary.  Fixes #78400.
+
+2006-06-04  Marek Safar  <marek.safar@seznam.cz>
+
+       * parameter.cs (Parameter.ApplyAttributeBuilder): More DefaultValue
+       attribute applicable tests for attribute argument.
+
+2006-06-02  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #78079
+       * expression.cs (Binary.DoNumericPromotions): Remove and rewrite.
+       (Binary.OverloadResolve_PredefinedIntegral): New.
+       (Binary.OverloadResolve_PredefinedFloating): New.
+       (Binary.OverloadResolve_PredefinedString): New.
+       (Binary.ResolveOperator): Use those instead of DoNumericPromotions.
+       Follow the standard more closely, and treat numeric promotions in
+       terms of overload resolution.
+       (Binary.CheckShiftArguments): Simplify.
+
+2006-06-01  Raja R Harinath  <rharinath@novell.com>
+
+       * flowanalysis.cs (MyBitVector): Simplify representation.
+       (MyBitVector.Clone): Avoid allocating BitArray.
+       (MyBitVector.operator&): Rename from MyBitVector.And and make symmetric.
+       (MyBitVector.operator|): Likewise, with MyBitVector.Or.
+       (*): Update.  Change all references to MyBitVector.And and
+       MyBitVector.Or to &= and |=.
+
+2006-05-31  Raja R Harinath  <rharinath@novell.com>
+
+       * generic.cs (Nullable.LiftedBinaryOperator.EmitEquality):
+       Use bne.un instead of ceq+brfalse.
+
+       Fix cs0208-[23].cs
+       * typemanager.cs (IsUnmanagedType): Disallow generic types and
+       generic parameters.
+
+2006-05-29  Raja R Harinath  <rharinath@novell.com>
+
+       Fix cs0231-[34].cs.
+       * cs-parser.jay (formal_parameter_list): Extend the pattern below
+       to param arguments too.
+
+2006-05-26  Miguel de Icaza  <miguel@novell.com>
+
+       * cs-parser.jay: Catch another parsing form for arglist being
+       followed by other arguments.  Fixes #78313.
+
+2006-05-25  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #78324
+       * expression.cs (Binary.DoResolve): Use Nullable.LiftedBinaryOperator
+       also when one of the operands is a null literal.
+       * generic.cs (Nullable.LiftedBinaryOperator.EmitEquality): Rewrite
+       to improve clarity, and generate slightly better code.
+
+2006-05-24  Raja R Harinath  <rharinath@novell.com>
+
+       * flowanalysis.cs (FlowBranchingToplevel.AddReturnOrigin): Move
+       checking of out parameters to ...
+       (FlowBranchingToplevel.Merge): ... here.
+       (FlowBranchingException.AddBreakOrigin): If 'finally_vector' is
+       set, propagate the origin upward, and only complain if there was
+       no other error.
+       (FlowBranchingException.AddContinueOrigin): Likewise.
+       (FlowBranchingException.AddReturnOrigin): Likewise.
+       (FlowBranchingException.AddGotoOrigin): Likewise.       
+
+2006-05-23  Raja R Harinath  <rharinath@novell.com>
+
+       * flowanalysis.cs (UsageVector.MergeOrigins): If an origin is
+       unreachable, skip it.
+       (FlowBranchingException.Merge): Always propagate jumps, even if
+       the finally block renders subsequent code unreachable.
+
+2006-05-18  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #77601
+       * statement.cs (Goto.Resolve): Move responsibility for resolving
+       'goto' to FlowBranching.AddGotoOrigin.
+       (Goto.SetResolvedTarget): New.  Callback to set the
+       LabeledStatement that's the target of the goto.
+       (Goto.DoEmit): Use Leave instead of Br when crossing an
+       unwind-protect boundary.
+       * flowanalysis.cs (FlowBranching.AddGotoOrigin): Rename from
+       LookupLabel and adjust to new semantics.
+       (FlowBranchingToplevel.AddGotoOrigin): Likewise.
+       (FlowBranchingBlock.AddGotoOrigin): Likewise. Use
+       Goto.SetResolvedTarget to update target.
+       (FlowBranchingLabeled.AddGotoOrigin): Likewise.
+       (FlowBranchingException.AddGotoOrigin): Rewrite to be similar to
+       AddBreakOrigin & co.  Delay propagation until ...
+       (FlowBranchingException.Merge): ... this.
+
+       * statement.cs (Block.Resolve): Always depend on flow-branching to
+       determine unreachability.  Kill workaround that originally emitted
+       only one statement after an "unreachable" label (see infloop in
+       test-515.cs).
+
+       Fix #77869, #76148, #77755, #75255 and a host of other bugs.
+       This is still "wrong", but anything better would probably need a
+       multi-pass algorithm.
+       * flowanalysis.cs (FlowBranchingLabeled): Salt away a copy of the
+       usage vector.  Force current usage vector to be reachable, to
+       optimistically signify backward jumps.
+       (FlowBranchingLabeled.LookupLabel): Note if a backward jump is
+       detected.
+       (FlowBranchingLabeled.Merge): New.  If no backward jump was
+       detected, return the original salted-away usage vector instead,
+       updated with appropriate changes.  Print unreachable warning if
+       necessary.
+       * statement.cs (Block.Resolve): Don't print unreachable warning on
+       a labeled statement.
+
+2006-05-17  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * driver.cs: Pass filename without path to AssemblyBuilder's
+       AddResourceFile. Fixes bug #78407.
+
+2006-05-17  Raja R Harinath  <rharinath@novell.com>
+
+       * statement.cs (LabeledStatement.Resolve): Move merging of origins ...
+       * flowanalysis.cs (FlowBranchingLabeled): ... here.
+       (FlowBranching.MergeChild): Overwrite
+       reachability information from Labeled branchings too.
+
+2006-05-16  Raja R Harinath  <rharinath@novell.com>
+
+       * statement.cs (Goto.Resolve): Merge jump origins here ...
+       * flowanalysis.cs (FlowBranching.Label): ... rather than here.
+
+       * flowanalysis.cs (FlowBranching.LookupLabel): Move CS0159 check ...
+       (FlowBranchingToplevel.LookupLabel): ... here.  Add CS1632 check.
+       (FlowBranchingGoto.LookupLabel): New.  Handle back jumps.
+       (FlowBranchingBlock.LookupLabel): Call LabeledStatement.AddReference
+       here, ...
+       * statement.cs (Goto.Resolve): ... not here.
+       (Goto.Emit): Remove CS1632 check.
+
+2006-05-14  Marek Safar  <marek.safar@seznam.cz>
+
+       * ecore.cs (Expression.ResolveAsTypeTerminal): Fixed type in the obsolete
+       error message.
+
+2006-05-11  Raja R Harinath  <rharinath@novell.com>
+
+       * flowanalysis.cs (UsageVector.MergeJumpOrigins): Kill.
+       (FlowBranchingBlock.Label): Use UsageVector.MergeOrigins.
+       (FlowBranchingException.Label): Likewise.
+
+       * flowanalysis.cs (MyBitVector.SetAll): New.  Sets all bits to the
+       given value.
+       (MyBitVector.Or): Use it to avoid losing information (Count).
+       (FlowBranching.MergeOrigins): Likewise.
+
+       * flowanalysis.cs (UsageVector.IsDirty): Remove.
+       (UsageVector.Parameters, UsageVector.ParameterVector): Likewise.
+       (UsageVector.Locals, UsageVector.LocalVector): Likewise.
+       (UsageVector.ToString): Simplify.
+       (UsageVector.MergeSiblings): Move here from ...
+       (FlowBranching.Merge): ... here.
+       (FlowBranchingToplevel.CheckOutParameters): Take an UsageVector,
+       not a MyBitVector.
+
+2006-05-10  Raja R Harinath  <rharinath@novell.com>
+
+       * flowanalysis.cs (UsageVector.MergeOrigins): Simplify, now that a
+       null bitvector is treated as all-true.
+
+       * flowanalysis.cs (MyBitVector.And, MyBitVector.Or): Make lazier.
+       (MyBitVector): Rationalize invariants.  'vector != null' implies
+       that we have our own copy of the bitvector.  Otherwise,
+       'InheritsFrom == null' implies all inherited bits are true.
+
+2006-05-09  Marek Safar  <marek.safar@seznam.cz>
+
+       * statement.cs (LocalInfo): Add IsConstant.
+       (LocalInfo.DeclareLocal): Moved from EmitMeta and changed to don't emit
+       local variable for constants.
+
+2006-05-09  Raja R Harinath  <rharinath@novell.com>
+
+       * flowanalysis.cs (MyBitVector.Empty): New.
+       (MyBitVector): Don't allow InheritedFrom to be null.
+       (MyBitVector.And, MyBitVector.Or): Treat 'null' as all-ones.
+       (UsageVector, FlowBranching): Update to changes.
+
+       * flowanalysis.cs (FlowBranching.InTryWithCatch): Don't terminate
+       recursion.  The 'Parent == null' condition isn't sufficient for
+       anonymous methods.
+       (FlowBranching.AddBreakOrigin): Likewise.
+       (FlowBranching.AddContinueOrigin): Likewise.
+       (FlowBranching.AddReturnOrigin): Likewise.
+       (FlowBranching.StealFinallyClauses): Likewise.
+       (FlowBranching.MergeTopBlock): Move to FlowBranchingToplevel.
+       (FlowBranching.CheckOutParameters): Likewise.
+       (FlowBranchingToplevel): Terminate all the above recursions here.
+       (FlowBranchingToplevel.End): Rename from MergeTopBlock.
+       * codegen.cs (EmitContext.ResolveTopBlock): Update to changes.
+
+       * flowanalysis.cs (BranchingType.Toplevel): New.  Represents a
+       toplevel block.
+       (FlowBranchingToplevel): New.  Empty for now.
+       (FlowBranching.MergeTopBlock): Update.
+       * codegen.cs (EmitContext.ResolveTopBlock): Create a Toplevel
+       branching for the anonymous delegate.
+       (EmitContext.StartFlowBranching): Add ToplevelBlock variant.
+
+       * flowanalysis.cs (UsageVector.MergeOrigins): Reorganize.
+       (UsageVector.MergeJumpOrigins): Don't ignore current reachability
+       information at the start of the merge.  Reorganize.
+
+2006-05-07  Marek Safar  <marek.safar@seznam.cz>
+
+       * class.cs (MethodData.Define): Method cannot implement interface accessor.
+
+2006-05-07  Marek Safar  <marek.safar@seznam.cz>
+
+       * expression.cs (QualifiedAliasMember.ResolveAsTypeStep): Pass location
+       to newly introduced ctor.
+
+       * namespace.cs (Namespace.Error_NamespaceDoesNotExist): Moved an error
+       message to one place.
+       (GlobalRootNamespace.Error_NamespaceDoesNotExist): Custom message for
+       global namespace.
+
+2006-05-07  Marek Safar  <marek.safar@seznam.cz>
+
+       * const.cs (Const.Error_ExpressionMustBeConstant): Better error message.
+
+       * ecore.cs (Expression.ResolveAsConstant): Updated.
+
+       * statement.cs (ResolveMeta): Updated.
+
+2006-05-06  Marek Safar  <marek.safar@seznam.cz>
+
+       * cs-parser.jay: __arglist cannot be used in initializer.
+
+2006-05-06  Marek Safar  <marek.safar@seznam.cz>
+
+       A fix for #77879
+       * namespace.cs (LocalAliasEntry.DoResolve): Don't allow to access nested
+       private types.
+
+2006-05-05  Raja R Harinath  <rharinath@novell.com>
+
+       * statement.cs (EmptyStatement.ResolveUnreachable): Override.
+       (LabeledStatement): Add 'name' parameter.
+       (LabeledStatement.Name, LabeledStatement.JumpOrigins): New.
+       (Block.AddLabel): Update to changes.
+       * cs-parser.jay (labeled_statement): Likewise.
+
+       * flowanalysis.cs (BranchingType.Labeled): New.
+       (UsageVector.MergeOrigins): Remove unused 'branching' argument.
+       (FlowBranchingLabeled): New.  Does nothing for now, but will
+       eventually handle 'goto' flows.
+       * codegen.cs (StartFlowBranching): Add new LabeledStatement variant.
+       * statement.cs (LabeledStatement.Resolve): Create a FlowBranching
+       that's terminated ...
+       (Block.Resolve): ... here.
+
+       * flowanalysis.cs (UsageVector.MergeFinally): Remove.
+       (UsageVector.MergeFinallyOrigins): Likewise.
+       (FlowBranching.InTryOrCatch): Likewise.
+       (FlowBranching.AddFinallyVector): Likewise.
+       (FlowBranchingException): Update to changes.
+
+       Fix #78290
+       * statement.cs (Return.Resolve): Move error checking to ...
+       * flowbranching.cs (FlowBranching.AddReturnOrigin): ... this.
+       (FlowBranchingException): Handle return origins like break and
+       continue origins.
+       (FlowBranching.UsageVector.CheckOutParameters): Remove.
+
+2006-05-04  Marek Safar  <marek.safar@seznam.cz>
+
+       A fix for #76122
+       * class.cs (TypeContainer.FindMembers): Includes event method in the methods
+       filter.
+
+2006-05-04  Marek Safar  <marek.safar@seznam.cz>
+
+       A fix for #77543
+       * class.cs (MethodData.Define): Do public accessor check only when method
+       implements an interface.
+
+2006-05-04  Raja R Harinath  <rharinath@novell.com>
+
+       Remove special handling of 'break'
+       * flowanalysis.cs (Reachability): Remove all mention of 'breaks'.
+       (Reachability.Meet): Simplify.  Remove 'do_breaks' argument.
+       (UsageVector.Break): Remove.
+       (FlowBranching.Merge): Use 'Reachable.IsUnreachable' to determine
+       reachability.
+       (FlowBranchingBreakable.Merge): Don't ResetBreaks.
+
+       * statement.cs (Break.Resolve): Call UsageVector.Goto (), not
+       UsageVector.Breaks ().  Don't set NeedsReturnLabel.
+
 2006-05-03  Marek Safar  <marek.safar@seznam.cz>
 
        A fix for #75726