+2006-08-02 Raja R Harinath <rharinath@novell.com>
+
+ * namespace.cs (NamespaceEntry.Doppelganger): Create slave
+ declspaces for doppelgangers too.
+ (UsingEntry): Implement IResolveContext.
+ (UsingEntry.Resolve): Don't set ToplevelTypes.Namespace. Use
+ 'this' as the resolve context.
+ (LocalAliasEntry): Likewise.
+
+ Implement parts of #77403
+ * roottypes.cs (RootDeclSpace): New. Used to represent the
+ toplevel declaration space. Each namespace declaration introduces
+ a "partial" root declaretion space.
+ * namespace.cs (NamespaceEntry.SlaveDeclSpace): New.
+ (NamespaceEntry.ctor): Create a SlaveDeclSpace if necessary.
+ * cs-parser.jay (CSharpParser.ctor): Initialize 'current_class'
+ from 'current_namespace.SlaveDeclSpace'.
+ (namespace_declaration): Likewise.
+ * class.cs (TypeContainer.ctor): Remove parent==ToplevelTypes
+ check. It can't happen now.
+ * decl.cs (DeclSpace.LookupType): Likewise.
+ * driver.cs (MainDriver): Sanity check.
+
+2006-08-01 Raja R Harinath <rharinath@novell.com>
+
+ * decl.cs (DeclSpace.FindNestedType): Remove.
+ (DeclSpace.LookupNestedTypeINHierarchy): Use PartialContainer and
+ LookupTypeContainer to get the container of the nested type.
+ * class.cs (TypeContainer.FindNestedType): Make non-override.
+
+2006-07-31 Raja R Harinath <rharinath@novell.com>
+
+ * decl.cs (DeclSpace.PartialContainer): Move field from ...
+ * class.cs (TypeContainer.PartialContainer): ... here.
+ (TypeContainer.AddBasesForPart): New helper.
+ (MemberBase.ParentContainer): Remove. Use Parent.PartialContainer
+ instead.
+ * cs-parser.jay (current_class): Convert to DeclSpace.
+ (struct_declaration, interface_declaration, class_declaration):
+ Use AddBasesForPart instead of .Bases directly.
+ * const.cs, iterators.cs: Update to changes.
+
+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