In mcs and gmcs:
[mono.git] / mcs / gmcs / ChangeLog
index 80b084d699e1ae6b2a5419de315d37ad3c9bc9a1..57563a59a542185966a55c2a0d188a6688d259dd 100644 (file)
@@ -1,3 +1,157 @@
+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