X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fgmcs%2FChangeLog;h=6861abc931b4db6f391547e3bc0c3b5678ada882;hb=4a9ecda075e6914d55f4621a87073299b3baa1e3;hp=5eff7be35d7eafe72538920537c1c1e89f8a31df;hpb=ccc75296f01a00febd514d6f7d91da2cf42811db;p=mono.git diff --git a/mcs/gmcs/ChangeLog b/mcs/gmcs/ChangeLog index 5eff7be35d7..6861abc931b 100644 --- a/mcs/gmcs/ChangeLog +++ b/mcs/gmcs/ChangeLog @@ -1,3 +1,815 @@ +2005-10-25 Martin Baulig + + * generic.cs + (GenericMethod.Define): Call TypeParameter.DefineConstraints() on + all the type parameters; fixes #76551. + +2005-10-25 Martin Baulig + + Fix #76472. + + * generic.cs + (GenericMethod.ctor): Added `Expression return_type' and + `Parameters parameters' arguments. + (GenericMethod.DefineType): Call ResolveAsTypeTerminal() on the + parameter and return types to check their constraints if they're + generic types. + + * codegen.cs (EmitContext.ResolvingGenericMethod): New public + boolean field. + + * ecore.cs (Expression.ResolveAsTypeTerminal): Don't check the + constraints of a generic type if `ec.ResolvingGenericMethod'. + + * class.cs (MethodCore.DoDefineParameters): Set + `ec.ResolvingGenericMethod' if we're a generic method. + (MemberBase.MemberType): Likewise. + +2005-10-25 Carlos Alberto Cortez + + * typemanager.cs (TypeManager): Added + TypeManager.internals_visible_attr_type to cache + S.R.CompilerServices.InternalsVisibleToAttribute. + + * codegen.cs (AssemblyClass): Added checks for + InternalsVisibleToAttribute in new method + CheckInternalsVisibleAttribute () and also cache the + AssemblyName in AssemblyClass.Name. + +2005-10-24 Martin Baulig + + * typemanager.cs + (TypeManager.ExpandInterfaces): Added overloaded version which + just takes a `Type[]' array. + + * generic.cs + (Constraints.Resolve): Don't expand the interfaces here; ie. we + just use the interfaces which were explicitly specified and not + the interfaces they inherit. Fixes #76482. + (TypeParameter.FindMembers): Expand the interfaces here. + +2005-10-21 Martin Baulig + + * generic.cs + (Constraints.Resolve): Also resolve the actual types here. + (Constraints.ResolveTypes): Just check the constraints here. + Fixes #76363; see gtest-218.cs. + +2005-10-21 Martin Baulig + + * convert.cs + (Convert.ImplicitTypeParameterConversion): Use a `ClassCast' + instead of a `BoxedCast'; fixes gtest-217.cs. + +2005-10-20 Atsushi Enomoto + + * generic.cs : (ConstructedType.CheckConstraints) warn CS0310 when + 1) "new()" is specified as generic parameter constraint and 2) the + type is TypeBuilder and 3) the type is abstract even if it has a + default .ctor(). Now errors/gcs0310-3.cs is correctly rejected. + +2005-10-20 Martin Baulig + + * generic.cs + (GenericConstraints.TypeParameter): New public property. + (TypeParameter.ctor): Also take a `DeclSpace' argument. + (TypeParameter.DeclSpace): New public property. + (TypeParameter.DefineType): Inflate the constraints if our + `DeclSpace' is an `Iterator'. + +2005-10-19 Atsushi Enomoto + + * class.cs, decl.cs : (MemberCache.FindMemberToOverride) added + GenericMethod argument to compare methods' generic type arguments. + Fixed bug #76382. + +2005-10-19 Martin Baulig + + * class.cs (TypeContainer.DefineType): Only use ResolveAsTypeStep(), + not ResolveType() when resolving the base type, so we're not + checking the constraints here. + (TypeContainer.ResolveType): Call ResolveType() on our base_type + if we have any. + +2005-10-19 Martin Baulig + + * generic.cs (ConstructedType.CheckConstraints): Committing + untested fix for #76441. + +2005-10-18 Raja R Harinath + + Fix #76371. + * class.cs (TypeContainer.DefineType): Move updating of + topological sort earlier in the code. + * decl.cs (DeclSpace.ResolveBaseTypeExpr): Don't use TypeBuilder. + +2005-10-18 Marek Safar + + Fix #76273. + * cfold.cs (BinaryFold): Reduce constant in enum conversion. + + * constant.cs (Constant.TryReduce): Moved from Cast class. + (Reduce): Made little bit more OO and fixed missing conversions. + + * ecore.cs (Reduce): Implemented. + (Binary.EnumLiftUp): New method to upgrade values to enum values. + + * literal.cs (Reduce): Implemented. + + * class.cs: Reverted Miguel's wrong commit. + +2005-10-14 Miguel de Icaza + + * ecore.cs (GetMemberType): Report the correct mapping for the MemberCore + +2005-10-14 Atsushi Enomoto + + * cs-parser.jay, expression.cs : CS0214 was missing error location + for constants. Fixed bug #76404. + +2005-10-10 Raja R Harinath + + * ecore.cs (PropertyExpr.Emit): Use Invocation.EmitCall to emit + InstanceExpression. + (PropertyExpr.EmitCall): Likewise. + * expression.cs (Invocation.EmitArguments): Handle case where + arguments == null. + (Invocation.EmitCall): Avoid allocating temporary variable if + there are no arguments. + +2005-10-11 Marek Safar + + Fix #76370. + * convert.cs (ExplicitConversionCore): Fixed object->enum + conversion. + +2005-10-07 Raja R Harinath + + Fix #76323. + * convert.cs (ImplicitConversionStandard): Move conversion of + void* to arbitrary pointer types ... + (ExplicitConversionStandard): .. here. + * ecore.cs (Expression.Error_ValueCannotBeConverted): Fix CS0266 + error to always print typenames. + +2005-10-07 Raja R Harinath + + * convert.cs (GetConversionOperator): Rename from + GetConversionOperators. Move operator selection code from ... + (UserDefinedConversion): ... here. + +2005-10-06 Marek Safar + + * convert.cs (ExplicitConversionCore): Removed duplicate enum + conversion. + +2005-10-05 Marek Safar + + * assign.cs (Assign.DoResolve): Error method changed. + + * cfold.cs (DoConstantNumericPromotions): Error method changed. + + * const.cs (ResolveValue): Reset in_transit immediately. + + * constant.cs: Error method changed. + + * convert.cs: Removed useless location parameter. + (ExplicitNumericConversion): Don't do double enum check. + (ExplicitConversionCore): Renamed from ExplicitConversion. + (ExplicitUnsafe): Extracted from ExplicitConversion. + (ExplicitConversion): Uses for error reporting. + + * ecore.cs (Error_ValueCannotBeConverted): More logic for more + error messages. + (ResolveBoolean): Uses common error method. + (CastToDecimal): Get rid of ec. + (CastFromDecimal): Optimized. + (ConvCast): Get rid of ec. + + * enum.cs (ResolveValue): Reset in_transit immediately. + (Emit): Return after first error. + + * expression.cs: Convert changes. + + * literal.cs: Error method changed. + + * statement.cs: Error method changed. + +2005-10-06 Raja R Harinath + + Fix gtest-131.cs and gtest-211.cs. + * generic.cs (Nullable.LiftedBinaryOperator.EmitEquality): + Only emit code for a label if it is used. Unreachable code can + violate ECMA evaluation stack invariants. + +2005-09-27 Marek Safar + + * anonymous.cs: Implemented ExprClassName. + + * assign.cs (Assign.DoResolve): Don't chrash when type is not + delegate. + + * attribute.cs (ResolveArguments): Enabled MethodImplOptions + check. + + * class.cs (StaticClass.DefineContainerMembers): Report protected + members as error. + + * codegen.cs: if(ed) PRODUCTION. + + * convert.cs (Error_CannotImplicitConversion): Better error + distinction. + + * cs-parser.jay: More error checks. + + * cs-tokenizer.cs (consume_identifier): Fixed Miguel's revert. + + * driver.cs (CSCParseOption): Enabled wrong option check. + + * ecore.cs (Expression.ExprClassName): Turned to property. + (MemberExpr.CheckIntermediateModification): For checking boxed + value types modification. + + * statement.cs (Fixed.Resolve): Expression type must be + convertible to fixed type. + (CollectionForeach.GetEnumeratorFilter,TryType): + Small refactoring for easier error checking. + +2005-09-26 Marek Safar + + * attribute.cs (Attribute.Resolve): Check Obsolete attribute for + attributes. + + * class.cs (GeneratedBaseInitializer): New class for customization + compiler generated initializers. + (MemberBase.DoDefine): Check Obsolete attribute here. + (FieldMember.DoDefine): Ditto. + + * const.cs (ExternalConstant.CreateDecimal): Builder for decimal + constants. + + * decl.cs (MemberCore.EmitContext): Returns valid current ec. + (MemberCore.GetObsoleteAttribute): Removed argument. + (MemberCore.CheckObsoleteness): Obsolete attributes are hierarchic. + (MemberCore.CheckObsoleteType): New helper. + + * delegate.cs, + * enum.cs, + * statement.cs: Updates after MemberCore changes. + + * ecore.cs (TypeExpr.ResolveType): Check type obsoleteness here. + (FieldExpr.ResolveMemberAccess): Fixed decimal constants checks. + + * expression.cs (ComposedCast.DoResolveAsTypeStep): Don't check + obsolete attribute for compiler construct. + (As.DoResolve): Cache result. + + * iterators.cs (Define_Constructor): Use GeneratedBaseInitializer. + +2005-10-01 Miguel de Icaza + + * expression.cs (Probe): instead of having a "Type probe_type" + keep the extra information as a TypeExpr probe_type_expr since the + "As" operator needs to perform some type checks. + + * (As.DoResolve): If the type is a type parameter, ensure that it + is constrained by a class. + +2005-09-22 Miguel de Icaza + + * statement.cs (Lock): Use the TemporaryVariable class instead of + manually using local variables as those do not work when variables + are captured. + + * ecore.cs: Moved the TemporaryVariable class from being a nested + class inside Foreach to be a public class that can be employed in + other places. + +2005-09-19 Marek Safar + + * cs-parser.jay: interface_accessors replaced by + accessor_declarations. + + * ecore.cs, literal.cs, statement.cs: NullLiteral holds null + location. + + * statement.cs (GotoCase.Resolve): Convert null constant to + null case. + (SwitchLabel.ResolveAndReduce): Ditto. + (SwitchLabel.NullStringCase): Custom null stamp. + (Switch.SimpleSwitchEmit): Fix from NullLiteral to NullStringCase. + + typemanager.cs (CSharpSignature): Don't skip first argument + for full names. + +2005-09-16 Marek Safar + + * cfold.cs, constant.cs, convert.cs, ecore.cs, + expression.cs, iterators.cs, literal.cs: Store constants and + literals location. + + * class.cs (MemberBase.ShortName): Pass location. + + * cs-parser.jay: Some location fixes. + + * ecore.cs (Expression.Location): Made virtual. + +2005-09-27 Marek Safar + + Fix #72930. + * const.cs (Const.ResolveValue): Check for assigning non-null + value to reference type. + +2005-09-26 Raja R Harinath + + Fix #76133. + * expression.cs (This.VerifyFixed): In a value type T, the type of + 'this' is T&, iow, 'this' is either an out or ref parameter. In a + value type R, 'this' is treated as a value parameter. + +2005-09-05 Miguel de Icaza + + * expression.cs (Cast.TryReduce): Only reduce to an EnumConstant + if the underlying types are the same, otherwise we need to produce + code that will do the proper cast. + + This was exposed by Marek's constant rewrite which produced + invalid code for the call site: + + enum X : long { a } + void Method (X v) {} + + Method ((X) 5) + + This fixes test-49.cs + +2005-09-05 Atsushi Enomoto + + * attribute.cs : (Attribute.IsValidArgumentType): array of string/ + Type/Object should be allowed as well. Fixed bug #75968. + +2005-09-05 Atsushi Enomoto + + * expression.cs : (Binary.DoResolve): when one is enum constant and + another is constant 0, then return enum one *as enum type*. + Fixed bug 74846. + +2005-10-04 Martin Baulig + + * ecore.cs (PropertyExpr.ResolveAccessors): Cosmetic fix; make the + `SetMemberIsUsed()' work for generics, too. + +2005-10-04 Martin Baulig + + * expression.cs (DelegateInvocation.EmitStatement): Make this work + for corlib. Fixes #75691. + +2005-09-28 Marek Safar + + Fix #76255. + * driver.cs: Fix compilation files with full root path. + +2005-09-25 Miguel de Icaza + + * report.cs (SymbolRelatedToPreviousError): Format the output so + it does not use an open parenthesis that is never closed. + + * driver.cs: Follow coding guidelines + +2005-09-18 Miguel de Icaza + + * driver.cs: Set InEmacs based on the environment variable EMACS. + + * location.cs (InEmacs): in this mode, do not report column + location as it confuses Emacs. + +2005-10-03 Raja R Harinath + + * support.cs (SeekableStreamReader.Position): Don't error out when + the requested position is just beyond the end of the current + buffered data. + +2005-09-28 Raja R Harinath + + * support.cs (SeekableStreamReader): Simplify drastically. Don't + try to keep in sync with the byte count of the underlying Stream. + However, this limits us to a window size of 2048 characters: i.e., + the maximum lookahead of our lexer/parser can be 2048 characters. + +2005-09-22 Martin Baulig + + * driver.cs: Removed a debugging FIXME. + +2005-09-21 Raja R Harinath + + * cs-parser.jay (type_arguments): Add CS1644 check. + * decl.cs (DeclSpace.AddToContainer): Restore CS0694 check. + +2005-09-15 Raja R Harinath + + * Makefile (PROGRAM): Make profile specific. + (gmcs.exe) [PROFILE=net_2_0]: Add utility rule to copy gmcs.exe to + the current directory. + + Fix test-455.cs. + * expression.cs (Invocation.EmitCall): Remove optimization on + this_call since it doesn't handle 'this' being a value type. + +2005-09-05 Geoff Norton + + * driver.cs: Ensure file handles are closed after parsing + +2005-09-05 Miguel de Icaza + + * expression.cs (Cast.TryReduce): Only reduce to an EnumConstant + if the underlying types are the same, otherwise we need to produce + code that will do the proper cast. + + This was exposed by Marek's constant rewrite which produced + invalid code for the call site: + + enum X : long { a } + void Method (X v) {} + + Method ((X) 5) + + This fixes test-49.cs + +2005-09-05 Martin Baulig + + * expression.cs (As.DoResolve): Use `probe_type.IsValueType' + instead of `TypeManager.IsValueType (probe_type)'; fixes #75668. + + * cs-parser.jay (delegate_declaration): Small fix for #75852. + +2005-09-05 Atsushi Enomoto + + * typemanager.cs: (IsUnmanagedType) : generic parameter is not allowed + to be a pointer type due to the spec 25.2, so check if declaring + type is generic type definition. Fixed bug #75772. + +2005-09-05 Atsushi Enomoto + + Fixed bug #75957. + * generic.cs : (TypeManager.IsEqual(Type,Type)): it should work when + both types are not defined by methods. + * expression.cs : (Invocation.IsApplicable): it should work when + the argument type is equal to the parameter type, not only when + ImplicitConversionExists() returns true. + +2005-09-02 Raja R Harinath + + * attribute.cs (GetMarshal): Work even if "DefineCustom" is + internal. + + Fix #75941. + * ecore.cs (SimpleNameResolve.DoSimpleNameResolve): Disable + flow-branching for LocalVariableReferences in case we were invoked + from a MemberAccess. + * expression.cs (LocalVariableReference.VerifyAssigned): New. + Carved out of ... + (LocalVariableReference.DoResolveBase): ... this. + (MemberAccess.Resolve): Do the check that was disabled during + SimpleNameResolve. + +2005-09-01 Atsushi Enomoto + + * class.cs : + (PartialContainer.Create): check abstract/sealed/static strictly + but abstract/sealed can exist only at one side. Fixed bug #75883. + +2005-09-01 Kornél Pál + + Fix #75945. + * attribute.cs (Attribute.GetMarshal): If ArraySubType is not + specified, don't default to UnmanagedType.I4. + +2005-09-01 Atsushi Enomoto + + * expression.cs : conditional operator should check possibly + incorrect assign expression. Fixed bug #75946. + +2005-08-30 Raja R Harinath + + Fix #75934. + * anonymous.cs (ScopeInfo.MakeFieldName): New helper. + (ScopeInfo.EmitScopeType): Use it to construct field names from + names of captured locals. + + Fix #75929. + * ecore.cs (BoxedCast.BoxedCast) [1-argument variant]: Remove. + * convert.cs (ImplicitReferenceConversion, TryImplicitIntConversion): + Pass 'target_type' to BoxedCast. Don't default to 'object'. + (ExplicitConversion): Remove enum cases already handled by + implicit conversion. Move implicit conversion check to the beginning. + * delegate.cs (DelegateCreation.ResolveMethodGroupExpr): Update. + * expression.cs (ArrayCreation.EmitDynamicInitializers): + Don't treat System.Enum as a struct. + +2005-08-30 Jb Evain + + * attribute.cs: handles as expression in parameters. + +2005-08-30 Raja R Harinath + + Fix #75802. + * class.cs (TypeContainer.VerifyClsName): Don't use a + PartialContainer when verifying CLS compliance. + (AbstractPropertyEventMethod): Set Parent here, ... + (PropertyMethod): ... not here. + +2005-08-30 Atsushi Enomoto + + * attribute.cs : escaped attribute name should not be allowed to be + resolved (e.g. @class as classAttribute). Fixed bug #75930. + +2005-08-29 Raja R Harinath + + Fix #75927. + * convert.cs (ImplicitStandardConversionExists): Allow zero also + when converting a long constant to unsigned long. + * expression.cs (Invocation.OverloadResolve): Add sanity check to + detect where IsApplicable and VerifyArgumentsCompat disagree. + +2005-08-29 Raja R Harinath + and Carlos Alberto Cortez + + Fix #75848. + * class.cs (TypeContainer.CanElideInitializer): New helper. + (TypeContainer.EmitFieldInitializers): Use it to determine if we + can safely emitting the initializer of a field. + +2005-08-25 Atsushi Enomoto + + * statement.cs : (Continue.Resolve()) Unlike break, continue is not + allowed inside a switch (without loop). Fixed bug #75433. + +2005-08-26 Kornél Pál + + * AssemblyInfo.cs: Using Consts.MonoVersion instead of MonoVersion.cs. + * mcs.exe.sources: Using Consts.MonoVersion instead of MonoVersion.cs. + +2005-08-25 Atsushi Enomoto + + * driver.cs : kinda reverting the default encoding changes (not exact + revert since I noticed that "codepage:reset" might not work fine). + +2005-08-25 Atsushi Enomoto + + * class.cs : (AbstractPropertyEventMethod) SetupName() now takes + Location. Now getter and setter store location correctly. + (errors/cs0111-12.cs now reports the expected location.) + +2005-08-25 Atsushi Enomoto + + * driver.cs : Use default encoding on the environment. + Removed (now that) extra parameter for SeekableStreamReader. + * support.cs : (SeekableStreamReader) third .ctor() argument for + StreamReader is not required (always true). preamble size could + be acquired in simpler and safe way. + +2005-08-24 Atsushi Enomoto + + * cs-parser.jay: report CS0642 at warning level 3 + and report CS0642 for an if else statement also + fixes bug #74745. Patch by John Luke (and a bit + modified by me). + Removed extra CS0642 warning check for "while", + "for" and "fixed". + * statement.cs: In Block.Resolve(), CS0642 check + is reimplemented to check a sequence of an empty + statement and a block. + + Both fix bug #66777. + +2005-08-24 Marek Safar + + * attribute.cs (GetMethodObsoleteAttribute): Disabled obsolete properties + detection until I fix it. + + * cs-tokenizer.cs: Changed error message. + + * cs-parser.jay: Fixed 2 error locations. + + * ecore.cs (Error_TypeDoesNotContainDefinition): Share error message. + (PropertyExpr.Error_PropertyNotFound): First attempt to detect non C# + properties. + + * enum.cs (GetSignatureForError): Fixed. + + * expression.cs (Invocation.IsSpecialMethodInvocation): Improved special + method detection. + + * class.cs, + * typemanager.cs (RegisterProperty): Removed. + + * statement.cs (CheckInvariantMeaningInBlock): Changed error message. + +2005-08-24 Raja R Harinath + + Fix #75874. + * expression.cs (ArrayAccess.EmitLoadOpcode): Emit ldelem.i for pointers. + (ArrayAccess.GetStoreOpcode): Return stelem.i for pointers. + +2005-08-23 Atsushi Enomoto + + * expression.cs : tiny fix is required for not warning positive ulong. + See test-441.cs. + +2005-08-23 Atsushi Enomoto + + * expression.cs : add CS0652 check for constant and integral + expression. Fixed bug #53974. + +2005-08-23 Atsushi Enomoto + + * expression.cs : in DoNumericPromotions(), check if there is implicit + conversion overload for string (to check CS0034). Fixed bug #52492. + +2005-08-23 Atsushi Enomoto + + * cs-tokenizer.cs : Check newline in char constant. Fixed bug #75245. + +2005-08-23 Atsushi Enomoto + + * ecore.cs : report location when it is *not* Null. + +2005-08-23 Atsushi Enomoto + + * codegen.cs, + ecore.cs, + flowanalysis.cs, + expression.cs: + Added OmitStructFlowAnalysis to EmitContext to handle CS0165 check + correctly. Fixed bug #75721. + +2005-08-23 Raja R Harinath + + * support.cs (SeekableStreamReader.Position): Avoid an expensive + loop that performs 'min (pos, char_count)'. + + Fix #75862. + * expression.cs (Unary.ResolveOperator): Don't discard implicit + converted value in Operator.OnesComplement. + +2005-08-22 Ben Maurer + + * anonymous.cs: If the anon method is pulled into a helper class, + it needs to be `internal' not `private'. Fixes runtime behavior on + msft. bug #75704 + +2005-08-17 Marek Safar + + Fix #75803 + * decl.cs (DeclSpace.VerifyClsCompliance): Skip when collision object + is a partial class. + +2005-08-16 Marek Safar + + The big constants rewrite + Fix #75746, #75685 and more + As a side effect saved 1MB for MWF ;-) + + * attribute.cs (GetAttributeArgumentExpression): Use ToType, GetTypedValue. + (GetMarshal, GetMethodImplOptions, GetLayoutKindValue): Values are not + enum based for corlib compilation. + + * cfold.cs (BinaryFold): Convert operand for enum additions. Fixed enum + subtractions. + + * class.cs (FixedField.Define): Use ResolveAsConstant. + + * const.cs (IConstant): Interface constants and enums. + (Const.ResolveValue): New method for constant resolvning. + (ExternalConstant): Constants from imported assemblies. + + * constant.cs (Constant.GetTypedValue): Used to get constant with forced + conversion; like enums. + (Constant.ToType): Converts this constant to different type. + (Constant.Increment): Adds 1. + + * convert.cs (ImplicitConversionRequired): Simplified. + + * cs-parser.jay: Create EnumMember directly. + + * decl.cs (MemberCore.CheckObsoleteness): Checks for ObsoleteAttribute presence. + + * doc.cs (GenerateEnumDocComment): Removed. + + * ecore.cs (Expression.ResolveAsConstant): New constant specific method. + (ConvertIntLiteral): Removed. + (FieldExpr.ResolveMemberAccess): Refactored to remove constant specific if(s). + + * enum.cs (EnumMember): Implement IConstant. + (Enum.IsValidEnumConstant): Removed. + (Enum.GetNextDefaultValue): Removed. + (Enum.FindMembers): Updated. + (Enum.GenerateDocComment): Iterate enum members. + + * expression.cs (Cast.TryReduce): Handle enums correctly. + (New.Constantify): Made public. + (MemberAccess.DoResolve): Removed contant specific if(s). + + * literal.cs (NullLiteral): Implement new abstract methods. + + * statement.cs (GotoCase.Resolve): Use new constant methods. + (SwitchLabel.ResolveAndReduce): Use new constant methods. + + * typemanager.cs (LookupEnum): Removed. + (IsEnumType): Fixed to work with corlib. + (RegisterConstant): Removed. + (LookupConstant): Removed. + (GetConstant): Changed to work with IConstant. + +2005-08-04 Atsushi Enomoto + + * location.cs : Fixed overflown (>255) column number. + +2005-08-03 Raja R Harinath + + First cut of the qualified-alias-member feature. + * cs-tokenizer.cs (Tokenizer.is_punct): Recognize the double-colon + token. + * cs-parser.jay (DOUBLE_COLON): New token. + (namespace_or_type_name): Add rule for recognizing + qualified-alias-members. + (primary_expression): Likewise. + (element_access): Allow QualifiedAliasMember as a possible + type-bearing expression. + (local_variable_type, local_variable_pointer_type): Likewise. + * namespace.cs (NamespaceEntry.LookupAlias): New. Looks up + aliases in the current and enclosing namespace declarations. + (NamespaceEntry.UsingAlias): Add CS0440 warning. + * decl.cs (MemberName.is_double_colon): New. + (MemberName.MemberName): Add new constructor for alias-member. + (MemberName.GetTypeExpression): Generate QualifiedAliasMember too. + * expression.cs (QualifiedAliasMember): New expression type. + +2005-08-02 Atsushi Enomoto + + * location.cs : it borked when no argument was specified. + +2005-08-02 Atsushi Enomoto + + * location.cs : tiny ToString() format fix. + +2005-08-02 Atsushi Enomoto + + * statement.cs : oops, it was missing. + +2005-08-02 Atsushi Enomoto + + A set of fixes for precise line/column location. + + * location.cs : + "token" field now holds a file/line "delta", a line number offset + from the segment, and a column number. See also: + http://lists.ximian.com/pipermail/mono-devel-list/2004- + December/009508.html + Removed static IsNull. Use instance IsNull property instead. + * cs-tokenizer.cs : + For some tokens it stores Location. For Identifier it stores + LocatedToken which is a pair of string name and location. + Column numbers are adjusted only at getChar(). + * report.cs : + Use Location.ToString() for reporting (it now contains column). + * cs-parser.jay : + Largely modified to use LocatedToken instead of + string (IDENTIFIER), and to acquire Location from some tokens. + * namespace.cs, decl.cs, ecore.cs, class.cs, delegate.cs, + iterators.cs, const.cs, anonymous.cs, tree.cs, enum.cs, + codegen.cs : + Now MemberName holds Location. DeclSpace.ctor() receives Location + as a parameter. Removed extra parameters to all derived classes. + Replaced Location.IsNull() with instance property. + * assign.cs, expression.cs : + Added .ctor() overload that omits Location. + * attribute.cs : + Added "nameEscaped" flag that indicates the identifier was escaped + in the source file. This fixes bug #57047. + +2005-09-02 Martin Baulig + + * class.cs: Make CS3005 a warning, not an error. + +2005-08-02 Marek Safar + + * attribute.cs (AttributeTester.GetImportedIgnoreCaseClsType): + New method, looking for lo-case imported cls type. + + * decl.cs (DeclSpace.VerifyClsCompliance): Check CS3005 for types + here. + + * driver.cs: Removed VerifyTopLevelNameClsCompliance usage. + + * enum (Enum.VerifyClsCompliance): Hardcode non-compliant types. + + * typemanager.cs (TypeManager.AllClsTopLevelTypes): Renamed from + all_imported_types. + (TypeManager.LoadAllImportedTypes): Lo-case imported types. + + Optimized to save 3.5 MB for SWF compilation. + 2005-08-01 Marek Safar * class.cs (AddToTypeContainer): Use inheritance insted of if(s).