+2005-08-20 Martin Baulig <martin@ximian.com>
+
+ * anonymous.cs (CaptureContext.CaptureThis): Create the topmost
+ scope if we don't already have it.
+
+ * expression.cs (Invocation.EmitCall): Use `ec.EmitThis ()' rather
+ than `ig.Emit (OpCodes.Ldarg_0)' to make it work inside iterators;
+ fixes #75867.
+
+2005-08-17 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #75803
+ * decl.cs (DeclSpace.VerifyClsCompliance): Skip when collision object
+ is a partial class.
+
+2005-08-16 Marek Safar <marek.safar@seznam.cz>
+
+ 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 <atsushi@ximian.com>
+
+ * location.cs : Fixed overflown (>255) column number.
+
+2005-08-03 Raja R Harinath <rharinath@novell.com>
+
+ 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 <atsushi@ximian.com>
+
+ * location.cs : it borked when no argument was specified.
+
+2005-08-02 Atsushi Enomoto <atsushi@ximian.com>
+
+ * location.cs : tiny ToString() format fix.
+
+2005-08-02 Atsushi Enomoto <atsushi@ximian.com>
+
+ * statement.cs : oops, it was missing.
+
+2005-08-02 Atsushi Enomoto <atsushi@ximian.com>
+
+ 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-08-02 Marek Safar <marek.safar@seznam.cz>
+
+ * 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 <marek.safar@seznam.cz>
+
+ * class.cs (AddToTypeContainer): Use inheritance insted of if(s).
+ (PartialContainer.Create): Moved logic AddToContainer.
+ (PartialContainer.MarkForDuplicationCheck): Shares name.
+
+ * decl.cs (DeclSpace.AddToContainer): Check name collisions at one
+ place.
+
+ * namespace.cs (Namespace.AddDeclSpace): Lazy declspaces
+ initialization.
+ (Namespace.GetSignatureForError): New method.
+
+ * tree.cs (Tree.RecordDecl): Moved to AddToContainer.
+ (RootTypes.AddToTypeContainer): se inheritance insted of if(s).
+
+2005-08-01 Raja R Harinath <rharinath@novell.com>
+
+ Fix #75669.
+ * ecore.cs (Expression.MemberLookupFailed): Use queried_type for
+ member lookup rather than qualifier_type, since qualifier_type can
+ be null.
+
+2005-08-01 Marek Safar <marek.safar@seznam.cz>
+
+ * enum.cs (Enum.VerifyClsName): Fixed to allow not CLSCompliant
+ enum member.
+
+2005-07-31 Miguel de Icaza <miguel@novell.com>
+
+ * statement.cs: Copy the local exception into the exception
+ captured local. Fixes 75674
+
+2005-07-31 Raja R Harinath <harinath@gmail.com>
+
+ Fix #75658.
+ * expression.cs (Invocation.OverloadResolve): Don't report error
+ CS1501 if error CS1502 has been reported.
+ (New.DoResolve): Delegate CS1501 reporting to
+ Invocation.OverloadResolve.
+
+ Fix #75656.
+ * statement.cs (Block.CheckInvariantMeaningInBlock): Verify
+ invariant-meaning-in-block property in an enclosing block if
+ necessary.
+
+2005-07-29 Marek Safar <marek.safar@seznam.cz>
+
+ * statement.cs (SwitchLabel.ResolveAndReduce): Refactored.
+ (SwitchLabel.Erorr_AlreadyOccurs): Share error message.
+ (Switch.CheckSwitch): Just save 50kb for SWF.
+
+2005-07-27 Martin Baulig <martin@ximian.com>
+
+ * anonymous.cs (CaptureContext.AddField): Added
+ `AnonymousContainer am' argument; compute its toplevel scope if
+ it's not already computed. Fixes #75649.
+
+2005-07-26 Raja R Harinath <rharinath@novell.com>
+
+ Fix #75628.
+ * class.cs (Constructor.Emit): Reset block to null if the block
+ resolve fails.
+
+2005-07-25 Marek Safar <marek.safar@seznam.cz>
+
+ * class.cs (TypeContainer.VerifyMembers): Be compatible in warning 169.
+
+2005-07-25 Marek Safar <marek.safar@seznam.cz>
+
+ * class.cs (MethodData.Define): Check whether accessor implementing
+ interface is public.
+
+ * driver.cs (Driver.parse): Try to be smart and check for `MZ' header.
+
+2005-07-22 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #57245
+ * namespace.cs (LookupType): Moved same type check to...
+
+ * typemanager.cs (LookupTypeReflection): Don't allow to import more types
+ with the same name.
+
+2005-07-21 Raja R Harinath <rharinath@novell.com>
+
+ * namespace.cs (NamespaceLookupType): Avoid a string allocation when we
+ already found a typebuilder.
+ * class.cs (MethodCore.IsDuplicateImplementation): Compare
+ MemberNames, not strings.
+
+ * const.cs (Error_ExpressionMustBeConst):
+ Rename from Error_EpressionMustBeConst.
+ * const.cs, class.cs, statement.cd: Update.
+
+2005-07-21 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #65573
+
+ * const.cs (Const.LookupConstantValue): Report missing contant expression
+ everytime.
+ (Error_EpressionMustBeConstant): Only one error method.
+
+ * class.cs, statement.c: Updated.
+
+2005-07-20 Raja R Harinath <rharinath@novell.com>
+
+ * statement.cs (Block.Flags): Add back HasVarargs.
+ (Block.flags): Make protected.
+ (ToplevelBlock.HasVarargs): Convert to a property that updates flags.
+
+ * typemanager.cs (types, typecontainers, user_types): Remove.
+ (UserTypes, TypeContainers): Likewise.
+ (HandleDuplicate, AddDelegateType, AddEnumType): Likewise.
+ (CleanUp, Reset): Update.
+ (AddUserType): Combine variants. Now, only updates builder_to_declspace.
+ (GetNestedType): Use Type.GetNestedType.
+ (CoreLookupType): Take two arguments, the namespace and the
+ basename of the type. Update to use the Namespace.Lookup
+ mechanism.
+ (InitEnumUnderlyingTypes, InitCoreTypes): Update.
+ (RealMemberLookup): Use IsNestedChildOf instead of playing with
+ string concatenation and substring matches.
+ * class.cs, enum.cs, delegate.cs: Update to changes.
+
+2005-07-20 Marek Safar <marek.safar@seznam.cz>
+
+ * constant.cs (Constant.Error_ConstantValueCannotBeConverted): Moved from
+ Expression and made virtual.
+
+ * convert.cs (ImplicitReferenceConversionExists): Skip for value types.
+ (ImplicitStandardConversionExists): Fixed `byte' typo ?
+
+ * ecore.cs (Expression.Error_ConstantValueCannotBeConverted): Moved.
+
+ * literal.cs (NullLiteral.Error_ConstantValueCannotBeConverted): Customize
+ error message.
+
+ * convert.cs, ecore.cs, enum.cs: Reflect Error_ConstantValueCannotBeConverted
+ change.
+
2005-07-18 Marek Safar <marek.safar@seznam.cz>
Fix #57707