X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fgmcs%2FChangeLog;h=51d9d4e721230462339bb8b07bd637ecf98836af;hb=e29358295387e3a8af479a0ee74eca88896dc5dd;hp=a5500550b3b1ae022ef0d6ad53cc8c00daf340d0;hpb=46f87c6d4552c81474a5813027f0e30b86ee338d;p=mono.git diff --git a/mcs/gmcs/ChangeLog b/mcs/gmcs/ChangeLog index a5500550b3b..51d9d4e7212 100644 --- a/mcs/gmcs/ChangeLog +++ b/mcs/gmcs/ChangeLog @@ -1,3 +1,351 @@ +2005-03-22 Martin Baulig + + * delegate.cs (Delegate.VerifyMethod): Call + TypeManager.GetParameterData() after method inference, not before. + +2005-02-25 Marek Safar + + * attribute.cs (Atttribute.Resolve): Add cache for parameter-less + attributes. Removed useless attribute double check. + It saves almost 2MBs for corlib. + +2005-02-25 Raja R Harinath + + Fix #72924. + * statement.cs (ExpressionStatement.Resolve): Make robust to being + called twice in case of error. + +2005-02-23 Chris Toshok + + Fix compiler portions of #72827. + * statement.cs (Block.Emit): call Begin/EndScope on the + EmitContext instead of the ILGenerator. + + * codegen.cs (EmitContext.BeginScope): new method, call + ILGenerator.BeginScope as well as the SymbolWriter's OpenScope (if + we have one.) + (EmitContext.BeginScope): same, but EndScope and CloseScope + + * symbolwriter.cs (SymbolWriter.OpenScope): get the current il + offset and call the superclass's OpenScope(int) with it. + (SymbolWriter.CloseScope): get the current il + offset and call superclass's CloseScope(int) with it. + +2005-02-23 Marek Safar + + * anonymous.cs (AnonymousMethod.Compatible): Fixed to report + CS1677 for out and ref as well. + + * class.cs (Method.Define): Add error CS1599 detection. + + * cs-parser.jay: Add CS1609, CS1670, CS1627 detection. + + * cs-tokenizer.cs (xtoken): Add error CS1646 detection. + + * delegate.cs (Delegate.Define): Add error CS1599 detection. + + * support.cs.cs (ModifierDesc): New helper method. + +2005-02-23 Raja R Harinath + Abin Thomas + Anoob V E + Harilal P R + + Fix #57851, #72718. + * class.cs (ConstructorBuilder.Resolve): Make sure that the second + MemberLookup (used for error reporting) actually returns a result. + Fix error report number (122, not 112). + +2005-02-22 Abin Thomas + Anoob V E + Harilal P R + + Fix #71134. + * pending.cs (PendingImplementation.GetAbstractMethods): + Find NonPublic members too. + +2005-02-22 Marek Safar + + * expression.cs.cs (ConditionalLogicalOperator.DoResolve): + Fixed error 217. + + * class.cs (MethodCore.CheckMethodAgainstBase): + Add error 239 report. + +2005-02-21 Raja R Harinath + + Fix #68955. + * expression.cs (Invocation.IsApplicable): Make public. + (Invocation.IsParamsMethodApplicable): Likewise. + * delegate.cs (Delegate.VerifyApplicability): Don't use + Invocation.VerifyArgumentCompat for parameter applicability + testing. Use Invocation.IsApplicable and + Invocation.IsParamsMethodApplicable. + +2005-02-21 Marek Safar + + * ecore.cs (PropertyExpr.DoResolve): Add error 214 report. + + * class.cs (Operator.Define): Add error 217 report. + +2005-02-21 Raja R Harinath + + * namespace.cs (UsingEntry.Resolve): Undo change below. + +2005-02-21 Raja R Harinath + + Fix #72756. + * ecore.cs (Expression.MemberLookupFailed): Add argument to + disable the error message when the extended MemberLookup also + fails. + (Expression.MemberLookupFinal): Update. + (SimpleName.DoSimpleNameResolve): Update. + * expression.cs (MemberAccess.ResolveNamespaceOrType): + Don't use MemberLookupFinal. + (New.DoResolve): Update. + (BaseAccess.CommonResolve): Update. + +2005-02-21 Raja R Harinath + + Fix #72732. + * attribute.cs (Attribute.ResolveType): If a 'resolve_error' had + occured previously, don't resolve again. + +2005-02-21 Marek Safar + + Fix #69949 + * attribute.cs (Attribute.GetAttributeUsage): Add EmitContext + argument. Call ResolveAttributeUsage for unresolved. + when types doesn't match ctor arguments. + + * class.cs (DoDefineMembers.TypeContainer): Removed safety check + for nested attribute classes. + (Class.attribute_usage): Removed. + (Class.ResolveAttributeUsage): Resolves AttributeUsageAttribute + for attribute class. + + * namespace.cs (UsingEntry.Resolve): Don't destroy NamespaceEntry. + + * rootcontext.cs (RegisterAttribute): Removed, attributes are + now normal types. + (attribute_types): Removed. + (EmitCode): Global attributes are emited as the latest. + +2005-02-18 Marek Safar + + * class.cs (EmitFieldInitializers): Don't emit field initializer + for default values when optimilization is on. + + * constant.cs (Constant.IsDefaultValue): New property. + + * driver.cs: Add /optimize handling. + + * constant.cs, + * ecore.cs, + * literal.cs: Implement new IsDefaultValue property. + + * rootcontext.cs (Optimize): New field, holds /optimize option. + +2005-02-18 Raja R Harinath + + Fix crasher in re-opened #72347. + * namespace.cs (Namespace.Lookup): Return null if + DeclSpace.DefineType returns null. + + Fix #72678. + * expression.cs (Argument.Resolve): Handle a case of CS0120 here. + +2005-02-18 Raja R Harinath + + Fix remainder of #63202. Change semantics of DoResolveLValue: it + now returns null if it cannot resolve to an lvalue. + * ecore.cs (Expression.DoResolveLValue): Return 'null' by default. + (Expression.ResolveLValue): Emit CS0131 error if DoResolveLValue + returned null. Remove check for SimpleName. + (EventExpr.DoResolveLValue): New. + * iterators.cs (Iterator.FieldExpression.DoResolveLValue): New. + * expression.cs (Argument.Error_LValueRequired): New. Move CS1510 + error from ... + (Argument.Resolve): ... here. Use it. Use DoResolveLValue to + avoid CS0131 error. + (Unary.ResolveOperator): Move CS0211 check ... + (Unary.DoResolve): ... here. Use DoResolveLValue to avoid + CS0131 error. + (Unary.DoResolveLValue): Simplify. + (AddressOf.DoResolveLValue): New. + (ArrayAccess.DoResolveLValue): New. + +2005-02-16 Marek Safar + + * attribute.cs (Attribute.Resolve): Add arguments casting for + when types doesn't match ctor arguments. + +2005-02-16 Raja R Harinath + + Fix parts of #63202. + * expression.cs (UnaryMutator.ResolveOperator): Remove redundant + lookup of operator in base type. Ensure that all checks happen + when the operator resolves to an "op_..." method. + +2005-02-15 Raja R Harinath + + Fix #71992. + * namespace.cs (NamespaceEntry.LookupNamespaceOrType): Add + 'ignore_cs0104' parameter. Pass it to ... + (NamespaceEntry.Lookup): ... this. + * decl.cs (DeclSpace.LookupType): Add 'ignore_cs0104' parameter. + * ecore.cs (SimpleName.ResolveAsTypeStep): Update. + (TypeLookupExpression.DoResolveAsTypeStep): Update. + * expression.cs (MemberAccess.IdenticalNameAndTypeName): + Update. Request that cs0104 errors be ignored. + (ComposedCast.ResolveAsTypeStep): Update. + +2005-02-14 Raja R Harinath + + Fix #59209. + * expression.cs (Invocation.BetterFunction): Remove support for + comparing virtual functions and their overrides. + (Invocation.IsOverride): New. + (Invocation.OverloadResolve): Don't consider 'override' functions + during candidate selection. Store them in a lookaside list. + If the selected method is a 'virtual' function, use the list to + find any overrides that are closer to the LHS type. + +2005-02-14 Marek Safar + + * expression.cs (New.DoResolve): Add complex core type reduction. + (New.Constantify): Converts complex core type syntax like 'new int ()' + to simple constant. + +2005-02-14 Raja R Harinath + + * decl.cs (EntryType.EntryType): New constructor to create an + updated copy of a cache entry. + (MemberCache.AddMethods): Use it. + (MemberCache.ClearDeclaredOnly): Remove. + (MemberCache.MemberCache): Update. + +2005-02-11 Miguel de Icaza + + * codegen.cs (EmitContext): Introduce the `MethodIsStatic' + variable. This one is represents the actual low-level declaration + of the method, as opposed to the semantic level `IsStatic'. + + An anonymous method which is hosted into a static method might be + actually an instance method. IsStatic would reflect the + container, while MethodIsStatic represents the actual code + generated. + + * expression.cs (ParameterReference): Use the new MethodIsStatic + instead of IsStatic. + + * anonymous.cs (AnonymousMethod.Compatible): Pass the + Modifiers.STATIC to the Anonymous' Method EmitContext if static is + set on the current EmitContext. + + * expression.cs (Cast): Overload DoResolveLValue so we can pass + resolve our casted expression as an LValue. This triggers the + proper LValue processing that is later required by Assign. + + This fixes 72347. + + * cs-tokenizer.cs (pp_and): recurse on pp_and, fixes #61903. + +2005-02-11 Marek Safar + + C# 2.0 Fixed buffer implementation + + * anonymous.cs: Update after RegisterHelperClass renaming. + + * attribute.cs (AttributeTester.fixed_buffer_cache): + Cache of external fixed buffers. + (AttributeTester.GetFixedBuffer): Returns IFixedBuffer + implementation if field is fixed buffer else null. + + * class.cs + (TypeContainer.AddField): Accept FieldMember instead of Field. + (FieldBase.IsFieldClsCompliant): Extracted code from + VerifyClsCompliance descendant customization. + (FixedField): New class handles fixed buffer fields. + (FixedFieldExternal): Keeps information about imported fixed + buffer. + (IFixedField): Make access to internal or external fixed buffer + same. + + * cs-parser.jay: Add fixed buffer parsing. + + * ecore.cs (FieldExpr.Emit): Add special emit case for fixed + buffer. + + * expression.cs (Indirection): Extended implementation to accept + fixed buffer field. + (PointerArithmetic.Emit): Get element from fixed buffer as well. + (ElementAccess.MakePointerAccess): Get type as parameter. + (DoResolve): Add fixed buffer field expression conversion. + (DoResolveLValue): Ditto. + (FixedBufferPtr): New class. Moved most of original ArrayPtr. + (ArrayPtr): Derives from FixedBufferPtr. + (ArrayPtr.Emit): Add extra emit for array elements. + + * flowanalysis.cs.cs (StructInfo): Use FieldMember. + + * rootcontext.cs (CloseTypes): Emit CompilerGenerated attribute + for compiler generated types. + (RegisterCompilerGeneratedType): Renamed from RegisterHelperClass. + + * statement.cs (Fixed): Refactored to be easier add fixed buffer + and consume less memory. + (Fixed.Resolve): Add fixed buffer case. + + * typemanager.cs (compiler_generated_attr_ctor, + fixed_buffer_attr_ctor): Add new 2.0 compiler attributes. + (HasElementType): Add our own implementation to work on every + runtime. + +2005-02-11 Miguel de Icaza + + * anonymous.cs (CaptureContext): Track whether `this' has been + referenced. + + * expression.cs (This.ResolveBase): Call CaptureThis. Before we + only captured `this' if it was implicitly done (instance + methods/variables were used). + + * codegen.cs (EmitContext.CaptureThis): New method to flag that + `this' must be captured. + +2005-01-30 Miguel de Icaza + + * anonymous.cs (CreateMethodHost): If there Scope.ScopeTypeBuilder + is null it means that there has been no need to capture anything, + so we just create a sibling. + + Renamed `EmitHelperClasses' to `EmitAnonymousHelperClasses' + + Just a partial fix. The other half is fairly elusive. + +2005-02-10 Raja R Harinath + + Fix #52586, cs0121-4.cs. + * decl.cs (MemberCache.DeepCopy): Rename from SetupCache. Take + and return a hashtable. + (MemberCache.ClearDeclaredOnly): New. + (MemberCache.MemberCache): Update to change. Make a deep copy of + the method_hash of a base type too. + (MemberCache.AddMethods): Adapt to having a deep copy of the base + type methods. Overwrite entries with the same MethodHandle so + that the ReflectedType is correct. The process leaves in base + virtual functions and their overrides as distinct entries. + (CacheEntry): Now a class instead of a struct. It shouldn't alter + matters since it was boxed in a ArrayList before. + (CacheEntry.Member, CacheEntry.EntryType): Remove 'readonly' + modifier. + * expression.cs (Invocation.BetterFunction): Simplify. Handle the + case of a virtual function and its override (choose the overload + as better). + (Invocation.OverloadResolve): Avoid 'override' members during + 'applicable_type' calculation. + 2005-02-09 Raja R Harinath Combine two near-redundant caches.