+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