Fix #77200.
[mono.git] / mcs / mcs / ChangeLog
index 55f6d7f80dd79ddcd632bac427970eac1d56b516..fa18e7b046b4763c1d1d9e992cbea489255e200c 100644 (file)
@@ -1,3 +1,336 @@
+2006-01-11  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #77200.
+       * cfold.cs (BinaryFold): Implement folding of BinaryOr, BinaryAnd
+       and ExclusiveOr for boolean constants too.
+
+2006-01-09  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #75636.
+       * expression.cs (Invocation.OverloadResolve): Replace reflected
+       override methods with their base virtual methods, rather than
+       skipping over them.
+       * typemanager.cs (TypeManager.GetOverride): New.
+
+2006-01-05  Jb Evain  <jbevain@gmail.com>
+
+       * class.cs (Property.Define, Indexer.Define): do not tag the
+       properties as SpecialName | RTSpecialName.
+
+2006-01-04  Miguel de Icaza  <miguel@novell.com>
+
+       * class.cs (MethodCore.IsDuplicateImplementation): This method was
+       doing a low-level comparission of parameter types.  It was lacking
+       a check for __argslist. 
+
+2005-12-30  Miguel de Icaza  <miguel@novell.com>
+
+       * expression.cs (ParameterReference.DoResolveBase): Allow
+       reference parameters if they are local to this block. 
+
+       This allows the ref and out parameters of a delegate to be used in
+       an anonymous method, for example:
+
+       delegate void set (out int x);
+
+       set s = delegate (out int x){
+               x = 0;
+       };
+
+       This is used by functionality introduced late in the C# language.
+       
+       * anonymous.cs (AnonymousMethod.Compatible): Allow anonymous
+       method that take ref and out parameters. 
+
+       Fixes #77119 which was a late change in the spec.
+
+2005-12-23  Miguel de Icaza  <miguel@novell.com>
+
+       * anonymous.cs (ScopeInfo.LinkScope): Do not link the scope to its
+       parent if its the same scope.  Fixes #77060.
+
+2005-12-21  Miguel de Icaza  <miguel@novell.com>
+
+       * driver.cs: Report the case of no source files and no -out:
+       argument provided.
+
+2005-12-20  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #77035.
+       * expression.cs (ComposedCast.GetSignatureForError): Define.
+
+2005-12-18 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       Fix #76995
+
+       * namespace.cs (NamespaceEntry): Add extern_aliases as a
+       ListDictionary, to contain the ExternAliasEntry entries (in
+       addition to the NamespaceEntry.aliases hashtable). This field is
+       shared between the original entry and its doppelganger (bodyless 
+       copy of it).
+       (NamespaceEntry.UsingExternalAlias): Add the extern alias entry to
+       extern_aliases field.
+       (NamespaceEntry.Lookup): Move the IsImplicit check after the
+       lookup in extern_aliases.
+
+2005-12-16  Raja R Harinath  <rharinath@novell.com>
+
+       Fix #77006.
+       * class.cs (TypeContainer.Mark_HasEquals): New.
+       (TypeContainer.Mark_HasGetHashCode): New.
+       (ClassPart): Override them.
+       (MethodCore.CheckBase): Use them instead of referring to Parent.Methods.
+
+       Fix #77008.
+       * enum.cs (EnumMember.EnumMember): Pass the parent_enum as the
+       'parent' argument to the base constructor.
+
+       Remove all mention of TypeContainer from decl.cs.
+       * decl.cs (MemberCore.Parent): Change into a DeclSpace.
+       (MemberCore.MemberCore): Change type of 'parent' argument to DeclSpace.
+       (DeclSpace.DeclSpace): Likewise.
+       (DeclSpace.DefineMembers): Remove unused argument.
+       * cs-parser.jay (pop_current_class): Update to changes.  Simplify
+       debugging check -- we don't care if the debug code throws an
+       InvalidCastException instead of an InternalErrorException.
+       * class.cs (TypeContainer.DefineMembers): Update to changes.
+       (TypeContainer.DoDefineMembers): Likewise.
+       (TypeContainer.GetMethods): Likewise.
+       (PropertyMember.Define): Likewise.
+       (MemberBase.Parent): New property that forwards to
+       MemberCore.Parent, but ensures that we get a TypeContainer.
+       * rootcontext.cs (RootContext.PopulateCoreType): Update to changes.
+       (RootContext.PopulateTypes): Likewise.  Remove special case code
+       for !RootContext.StdLib: DefineMembers is idempotent.
+
+2005-12-14  Miguel de Icaza  <miguel@novell.com>
+
+       * convert.cs (ExplicitConversionCore): Check the return value from
+       ExplicitConversionCore which can return null on failure.  Fixes #76914
+
+2005-12-13  Marek Safar  <marek.safar@seznam.cz>
+
+       * class.cs (Method.ApplyAttributeBuilder): Test out modifier properly.
+
+2005-12-11  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * doc.cs : The search for referenced namespace was insufficient to
+         get global one as it used to do. Fixed bug #76965.
+
+2005-12-10  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * doc.cs : check name in cref in the last phase that whether it is
+         namespace or not.
+
+2005-12-09  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * cs-tokenizer.cs : reverted the latest change: it somehow broke
+         Mono.C5.
+
+2005-12-09  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * doc.cs : so it turned out that we cannot skip override check for 
+         interface members. Fixed bug #76954.
+
+2005-12-09  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * cs-tokenizer.cs : fixed bug #75984:
+         - #warning and #error should not be handled when the source line
+           is disabled.
+         - #line is not checked strictly when the source line is disabled.
+         - #define and #undef is on the other hand checked strictly at any
+           state.
+
+2005-12-08  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * cs-tokenizer.cs : missing Location (actually, filename) in one of
+         CS1027 report.
+
+2005-12-05  Marek Safar  <marek.safar@seznam.cz>
+
+       * attribute.cs (GlobalAttribute.ctor): Pass NamespaceEntry only.
+
+       * class.cs (EmitFieldInitializers): Simplified and fixed to work with
+       event initializers.
+       (FieldBase.EmitInitializer): Moved from TypeContainer and simplified.
+       (FieldBase.Initializer): Initializer is now optional.
+       (EventField.Define): Only event field can have initializer.
+
+       * codegen.cs (EmitContext): DeclSpace is not readonly (small hack).
+
+       * const.cs (Const): Reuse initializer.
+
+       * cs-parser.jay: Updated after FieldBase changes.
+       Added current_array_type to simplify array initializers.
+
+       * ecore.cs (NullCast.IsDefaultValue): Implemented.
+
+       * expression.cs, iterators.cs: Updated.
+
+       * namespace.cs (NamespaceEntry): Made UsingFound private.
+
+2005-12-05  Marek Safar  <marek.safar@seznam.cz>
+
+       * parameterCollection.cs: Obsolete, removed.
+       * parser.cs: Obsolete, removed.
+
+2005-12-05  Marek Safar  <marek.safar@seznam.cz>
+
+       Fix #76849.
+       * class.cs (Constructor.Emit): Set obsolete checking for whole context.
+
+       * enum.cs (Enum.Define): Set obsolete context here.
+
+2005-12-05  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * doc.cs :
+         - FindDocumentedMember() now expects 1) paramList as null
+           when "we don't have to check the number of parameters" and
+           2) Type.EmptyTypes when "there is no arguments".
+         - Introduced FoundMember struct to hold the exact type which was
+           used to find the documented member (the above change broke
+           test-xml-044; it might be better just to use DeclaringType than
+           what MS does, like this change does, but it depends on usage.)
+
+2005-12-05  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * doc.cs : documented member might be from DeclaringType for nested
+         types. Fixed bug #76782.
+
+2005-12-03  Ben Maurer  <bmaurer@ximian.com>
+
+       * anonymous.cs: Have the param code handle leaving copies on the
+       stack etc. Allows anonymous params to take part in the assignment
+       code (++, +=, etc). Fixes bug #76550
+
+       * expression.cs: Handle the prepare_for_load/leave_copy by passing
+       it down to the anon code.
+
+       * iterators.cs: Use dummy var here
+
+       * codegen.cs: Handle new vars
+
+2005-12-01  Marek Safar  <marek.safar@seznam.cz>
+
+       Fix #76849.
+       * class.cs (MethodData.Define): Set proper Obsolete context.
+
+       * ecore.cs (FieldExpr.ResolveMemberAccess): Don't check [Obsolete] in
+       obsolete context.
+       (FieldExpr.DoResolve): Ditto.
+
+2005-12-01  Marek Safar  <marek.safar@seznam.cz>
+
+       Fix #76849.
+       * class.cs (MethodCore.DoDefineParameters): Test [Obsolete] only when
+       parent is not obsolete.
+
+2005-12-01  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * doc.cs : (FindDocumentedMember) find parameterless members first
+         and get CS0419 in the early stage. Fixed first case of bug #76727.
+
+2005-11-30  Marek Safar  <marek.safar@seznam.cz>
+
+       Fix #76859.
+       * ecore.cs (Expression.ResolveAsConstant): Report constant error only when
+       no error was reported.
+
+       *expression.cs (Binary.DoResolve): left can be null.
+
+2005-11-22  Marek Safar  <marek.safar@seznam.cz>
+
+       Fix #76783.
+       * class.cs (MethodData.Emit): Parameters should be labeled first.
+
+2005-11-21  Marek Safar  <marek.safar@seznam.cz>
+
+       Fix #76761.
+       * parameter.cs (Parameter.ApplyAttributeBuilder): Fixed `ref' detection.
+
+2005-11-18  Marek Safar  <marek.safar@seznam.cz>
+
+       * attribute.cs (AreParametersCompliant): Moved to Parameter.
+
+       * class.cs (MethodCore): Parameter clean up.
+       (IMethodData): Added ParameterInfo.
+       (MethodData): Parameter clean up.
+       (Indexer.Define): Parameter clean up.
+
+       * anonymous.cs,
+       * codegen.cs,
+       * cs-parser.jay,
+       * decl.cs,
+       * doc.cs,
+       * ecore.cs,
+       * flowanalysis.cs,
+       * iterators.cs,
+       * pending.cs,
+       * statement.cs,
+       * typemanager.cs: Parameter clean up.
+
+       * delegate.cs (Define): Get rid of duplicated code.
+
+       * expression.cs (ParameterReference): Removed useless parameters
+       and simplified.
+       (Invocation): Ditto.
+
+       * parameter.cs (ParamsParameter): New class, params specialization.
+       (ArglistParameter): Attemp to separate arglist.
+       (Parameter): Refactored to be reusable and faster.
+       (Parameter.Modifier): Made understandable.
+       (Parameters): Changed to be used as a class for `this' assembly
+       parameters. Refactored to use new specialized classes.
+
+       * support.cs (ParameterData): Added Types property.
+       (InternalParameters): Deleted.
+
+2005-08-20  Martin Baulig  <martin@ximian.com>
+
+       Merging this patch from GMCS to fix #75867.
+
+       * anonymous.cs (CaptureContext.CaptureThis): Create the topmost
+       scope if we don't already have it.
+
+2005-11-17  Martin Baulig  <martin@ximian.com>
+
+       * anonymous.cs
+       (CaptureContext.EmitMethodHostInstance): Use `Ldarg_0' if we
+       inherit the scope from our parent.  Fixes #76653.
+
+2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * doc.cs : the previous patch does not actually fix the bug.
+         PropertyInfo override check is now implemented and really fixed it.
+       * expression.cs : Invocation.IsAncestralType() is used from doc.cs.
+
+2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * doc.cs : apply "override filter" also to properties.
+         Fixed bug #76730.
+
+2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * doc.cs : renamed FindMembers() to FindMethodBase(). For interfaces,
+         no need to check overrides. For classes, omit those results from 
+         interfaces since they must exist in the class. Fixed bug #76726.
+
+2005-11-15  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * typemanager.cs : (GetFullNameSignature) differentiate indexers
+         with different parameters. Fixed the second problem in #76685.
+
+2005-11-15  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * doc.cs : (FindDocumentedMember) pass invocation_type as well (to
+         get expected 'protected' access in CheckValidFamilyAccess()).
+         Fixed bug #76692.
+
+2005-11-15  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * doc.cs : (GenerateTypeDocComment) Fields could be FixedField.
+         Fixed bug #76705.  CS1569 was incorrectly commented out.
+
 2005-11-14  Atsushi Enomoto  <atsushi@ximian.com>
 
        * doc.cs : use Invocation.IsOverride() to do real override check.