A type parameter can never be optional.
[mono.git] / mcs / gmcs / ChangeLog
index 3571bbe75f04afd6ec9361e6929fd89407c507de..3fb8fb208be8a9312cc51c3d47318b8876f1e195 100755 (executable)
 
        * rootcontext.cs (RootContext.LookupType): Cache negative results.
 
+2004-05-30 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * convert.cs: add a trivial cache for overload operator resolution.
+
+2004-05-31  Marek Safar  <marek.safar@seznam.cz>
+
+       * attribute.cs
+       (AttributeTester.GetObsoleteAttribute): Returns instance of
+       ObsoleteAttribute when type is obsolete.
+
+       * class.cs
+       (TypeContainer.VerifyObsoleteAttribute): Override.
+       (Method.GetSignatureForError): New method for usage when MethodBuilder is null.
+       (MethodCode.VerifyObsoleteAttribute): Override.
+       (MemberBase.VerifyObsoleteAttribute): Override.
+
+       * decl.cs
+       (MemberCore.CheckUsageOfObsoleteAttribute): Tests presence of ObsoleteAttribute
+       and report proper error.
+
+       *delegate.cs
+       (Delegate.VerifyObsoleteAttribute): Override.
+
+       * ecore.cs
+       (Expression.CheckObsoleteAttribute): Tests presence of ObsoleteAttribute
+       and report proper error.
+       (FieldExpr.DoResolve): Added tests for ObsoleteAttribute.
+
+       * enum.cs
+       (Enum.GetObsoleteAttribute): Returns ObsoleteAttribute for both enum type
+       and enum member.
+
+       * expression.cs
+       (Probe.DoResolve, Cast.DoResolve, LocalVariableReference.DoResolve,
+       New.DoResolve, SizeOf.DoResolve, TypeOf.DoResolce, MemberAccess.DoResolve):
+       Added test for ObsoleteAttribute.
+
+       * statement.cs
+       (Catch): Derived from Statement.
+
+2004-05-30 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * decl.cs: If possible, use lookuptypedirect here. We can only do
+       this if there is no `.' after the namespace. Avoids using
+       LookupType, which does lots of slow processing.
+       (FindNestedType) New method, does what it says :-).
+       * namespace.cs: use LookupTypeDirect.
+       * rootcontext.cs: use membercache, if possible.
+       * typemanager.cs (LookupTypeDirect): Cache negative hits too.
+
+2004-05-30 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * expression.cs:
+       According to the spec, 
+
+       In a member access of the form E.I, if E is a single identifier,
+       and if the meaning of E as a simple-name (§7.5.2) is a constant,
+       field, property, localvariable, or parameter with the same type as
+       the meaning of E as a type-name (§3.8), then both possible
+       meanings of E are permitted.
+
+       We did not check that E as a simple-name had the same type as E as
+       a type name.
+
+       This trivial check gives us 5-7% on bootstrap time.
+
+2004-05-30  Marek Safar  <marek.safar@seznam.cz>
+
+       Fixed bug #59071 & cs0160.cs
+       * statement.cs (Try.Resolve): Check here whether order of catch
+       clauses matches their dependencies.
+
+2004-05-30  Marek Safar  <marek.safar@seznam.cz>
+
+       Fixed bug #58624
+       * ecore.cs (SimpleName.SimpleNameResolve): Added test for
+       unsafe type.
+
+2004-05-30 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * expression.cs (Invocation.OverloadResolve): Avoid the
+       use of hashtables and boxing here by allocating on demand.
+
+2004-05-30  Martin Baulig  <martin@ximian.com>
+
+       * rootcontext.cs (RootContext.LookupType): Don't cache things if
+       we're doing a silent lookup.  Don't try to lookup nested types in
+       TypeManager.object_type (thanks to Ben Maurer).
+
+2004-05-30  Martin Baulig  <martin@ximian.com>
+
+       Committing a patch from Ben Maurer.
+
+       * rootcontext.cs (RootContext.LookupType): Cache negative results.      
+
+2004-05-29  Martin Baulig  <martin@ximian.com>
+
+       * class.cs (IMethodData.ShouldIgnore): New method.
+
+       * typemanager.cs (TypeManager.MethodFlags): Don't take a
+       `Location' argument, we don't need it anywhere.  Use
+       `IMethodData.ShouldIgnore ()' instead of
+       `MethodData.GetMethodFlags ()'.
+       (TypeManager.AddMethod): Removed.
+       (TypeManager.AddMethod2): Renamed to AddMethod.
+
+2004-05-29  Martin Baulig  <martin@ximian.com>
+
+       Committing a patch from Benjamin Jemlich <pcgod@gmx.net>.
+
+       * convert.cs (Convert.ImplicitReferenceConversion): If we're
+       converting from a class type S to an interface type and we already
+       have an object on the stack, don't box it again.  Fixes #52578.
+
+2004-05-29  Martin Baulig  <martin@ximian.com>
+
+       * class.cs (ConstructorInitializer.GetOverloadedConstructor):
+       Added support for `params' parameters.  Fixes #59267.
+
+2004-05-29  Martin Baulig  <martin@ximian.com>
+
+       * literal.cs (NullPointer): Provide a private .ctor which sets
+       `type' to TypeManager.object_type.  Fixes #59048.
+
+2004-05-29  Martin Baulig  <martin@ximian.com>
+
+       * expression.cs (MemberAccess.ResolveMemberAccess): If we're an
+       EventExpr, set `ee.InstanceExpression = left'.  Fixes #59188.
+
+       * ecore.cs (EventExpr.instance_expr): Make the field private.
+
+2004-05-26  Marek Safar  <marek.safar@seznam.cz>
+
+       Fixed bug #50080 & cs0214-2.cs
+       * expression.cs (Cast.DoResolve): Check unsafe context here.
+        
+       * statement.cs (Resolve.DoResolve): Likewise.
+
+2004-05-26  Martin Baulig  <martin@ximian.com>
+
+       * namespace.cs (NamespaceEntry.Lookup): Added `bool silent'.
+
+       * rootcontext.cs (RootContext.NamespaceLookup): Added `bool silent'.
+       (RootContext.LookupType): Pass down the `silent' flag.
+
+2004-05-25  Martin Baulig  <martin@ximian.com>
+
+       * expression.cs
+       (MethodGroupExpr.IdenticalTypeName): New public property.
+       (Invocation.DoResolve): Don't report a CS0176 if the "instance"
+       expression actually refers to a type.
+
+2004-05-25  Martin Baulig  <martin@ximian.com>
+
+       * expression.cs (Invocation.DoResolve): Applied Ben Maurer's patch
+       for #56176 and made it actually work.
+
+2004-05-25  Martin Baulig  <martin@ximian.com>
+
+       * ecore.cs (Expression.CacheTemporaries): Make this virtual.
+       (FieldExpr, PropertyExpr): Override and implement
+       CacheTemporaries.  Fixes #52279.
+
+2004-05-25  Miguel de Icaza  <miguel@ximian.com>
+
+       * location.cs: In the new compiler listing a file twice is a
+       warning, not an error.
+
+2004-05-24  Martin Baulig  <martin@ximian.com>
+
+       * enum.cs (Enum.DefineType): For the `BaseType' to be a
+       TypeLookupExpression; otherwise, report a CS1008.  Fixes #58571.
+
+2004-05-24  Martin Baulig  <martin@ximian.com>
+
+       * decl.cs (DeclSpace.FindType): Try doing an alias lookup before
+       walking the `using' list.  Fixes #53921.
+
+2004-05-24  Martin Baulig  <martin@ximian.com>
+
+       * const.cs (Const.LookupConstantValue): Added support for
+       EmptyCast's; fixes #55251.
+
+2004-05-24  Martin Baulig  <martin@ximian.com>
+
+       * ecore.cs (SimpleName.SimpleNameResolve): Renamed to
+       DoSimpleNameResolve() and provide a SimpleNameResolve() wrapper
+       which does the CS0135 check.  The reason is that we first need to
+       check whether the variable actually exists.
+
+2004-05-24  Martin Baulig  <martin@ximian.com>
+
+       * class.cs (MemberBase.DoDefine): Use DeclSpace.FindType() rather
+       than RootContext.LookupType() to find the explicit interface
+       type.  Fixes #58584.
+
+2004-05-24  Raja R Harinath  <rharinath@novell.com>
+
+       * Makefile: Simplify.  Use executable.make.
+       * mcs.exe.sources: New file.  List of sources of mcs.exe.
+
+2004-05-24  Anders Carlsson  <andersca@gnome.org>
+
+       * decl.cs:
+       * enum.cs:
+       Use the invariant culture when doing String.Compare for CLS case
+       sensitivity.
+       
+2004-05-23  Martin Baulig  <martin@ximian.com>
+
+       * decl.cs (DeclSpace.FindType): Only check the `using' list if we
+       don't have any dots.  Fixes #52622, added cs0246-8.cs.
+
+       * namespace.cs (NamespaceEntry.Lookup): Likewise.
+
+2004-05-23  Marek Safar  <marek.safar@seznam.cz>
+
+       * class.cs (MemberBase.Define): Reuse MemberType member for 
+       resolved type. Other methods can use it too.
+
+2004-05-23  Martin Baulig  <martin@ximian.com>
+
+       * ecore.cs (SimpleName.SimpleNameResolve): Only report a CS0135 if
+       the variable also exists in the current block (otherwise, we need
+       to report a CS0103).  Fixes #58670.
+
+2004-05-23  Martin Baulig  <martin@ximian.com>
+
+       * flowanalysis.cs (Reachability.Reachable): Compute this
+       on-the-fly rather than storing it as a field.
+
+2004-05-23  Martin Baulig  <martin@ximian.com>
+
+       * flowanalysis.cs (Reachability.And): Manually compute the
+       resulting `barrier' from the reachability.      
+       
+2004-05-23  Marek Safar  <marek.safar@seznam.cz>
+
+       Fix bug #57835
+       * attribute.cs (AttributeTester.GetMethodObsoleteAttribute): Returns
+       instance of ObsoleteAttribute when symbol is obsolete.
+
+       * class.cs
+       (IMethodData): Extended interface for ObsoleteAttribute support.
+
+2004-05-22  Marek Safar  <marek.safar@seznam.cz>
+
+       * attribute.cs: Fix bug #55970
+
+2004-05-22  Marek Safar  <marek.safar@seznam.cz>
+
+       Fix bug #52705
+       * attribute.cs
+       (GetObsoleteAttribute): New method. Creates the instance of
+       ObsoleteAttribute.
+       (AttributeTester.GetMemberObsoleteAttribute): Returns instance of
+       ObsoleteAttribute when member is obsolete.
+       (AttributeTester.Report_ObsoleteMessage): Common method for
+       Obsolete error/warning reporting.
+
+       * class.cs
+       (TypeContainer.base_classs_type): New member for storing parent type.
+
+       * decl.cs
+       (MemberCore.GetObsoleteAttribute): Returns instance of ObsoleteAttribute
+       for this MemberCore.
+
+2004-05-21  Marek Safar  <marek.safar@seznam.cz>
+
+       * attribute.cs, const.cs: Fix bug #58590
+
+2004-05-21  Martin Baulig  <martin@ximian.com>
+
+       * flowanalysis.cs (FlowBranching.MergeTopBlock): Don't check for
+       out parameters if the end of the method is unreachable.  Fixes
+       #58098. 
+
+2004-05-21  Marek Safar  <marek.safar@seznam.cz>
+
+       * codegen.cs, cs-parser.jay: Removed SetAttributes method.
+       Hari was right, why extra method.
+
+2004-05-21  Marek Safar  <marek.safar@seznam.cz>
+
+       * attribute.cs, cs-parser.jay: Fix errors/cs0579-7.cs.
+
 2004-05-20  Martin Baulig  <martin@ximian.com>
 
        * delegate.cs: Convert this file to Unix mode - like the original