+2005-10-23 Marek Safar <marek.safar@seznam.cz>
+
+ * anonymous.cs (AnonymousContainer): Don't crash when container
+ doesn't exist.
+
+2005-10-23 Marek Safar <marek.safar@seznam.cz>
+
+ * expression.cs (Binary.DoResolve): Warn when comparing same
+ values.
+
+2005-10-23 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #76486.
+ * expression.cs (Binary.DoResolve): It looks like there are no
+ convetsion rules in enum context.
+
+2005-10-19 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ Add support for extern alias qualifiers.
+ * typemanager.cs: Move some LookupTypeReflection code
+ to namespace.cs, to have cleaner code. Added some methods
+ to help us keep track of the extern aliased references.
+ * driver.cs: Add suport for extern alias assemblies on command
+ line and check for their warnings/errors. Also keep track of the
+ extern aliased assemblies.
+ * namespace.cs: Move the global functionality of Namespace
+ to GlobalRootNamespace/RootNamespace. Now the global namespace
+ is GlobalRootNamespace.Globa. Also the code moved from
+ typemanager.cs lives in GlobalRootNames.cs/RootNamespace.cs.
+ Finally added LocalAliasEntry (AliasEntry before) and
+ ExternAliasEntry, to handle alias statements.
+ * cs-parser.jay: Add support in the grammar for extern alias
+ statement.
+ * doc.cs, delegate.cs, expression.cs ecore.cs, symbolwriter.cs:
+ Update callings to Namespace (now in GlobalRootNamespace).
+
+2005-10-25 Martin Baulig <martin@ximian.com>
+
+ * convert.cs (ImplicitTypeParameterConversion): Make base
+ interfaces actually work; fixes #76557.
+
+2005-10-25 Martin Baulig <martin@ximian.com>
+
+ * generic.cs
+ (GenericMethod.Define): Call TypeParameter.DefineConstraints() on
+ all the type parameters; fixes #76551.
+
+2005-10-25 Martin Baulig <martin@ximian.com>
+
+ 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 <calberto.cortez@gmail.com>
+
+ * 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 <martin@ximian.com>
+
+ * 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 <martin@ximian.com>
+
+ * 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 <martin@ximian.com>
+
+ * convert.cs
+ (Convert.ImplicitTypeParameterConversion): Use a `ClassCast'
+ instead of a `BoxedCast'; fixes gtest-217.cs.
+
+2005-10-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * 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 <martin@ximian.com>
+
+ * 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 <atsushi@ximian.com>
+
+ * class.cs, decl.cs : (MemberCache.FindMemberToOverride) added
+ GenericMethod argument to compare methods' generic type arguments.
+ Fixed bug #76382.
+
+2005-10-19 Martin Baulig <martin@ximian.com>
+
+ * 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 <martin@ximian.com>
+
+ * generic.cs (ConstructedType.CheckConstraints): Committing
+ untested fix for #76441.
+
+2005-10-18 Raja R Harinath <rharinath@novell.com>
+
+ 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 <marek.safar@seznam.cz>
+
+ 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 <miguel@novell.com>
+
+ * ecore.cs (GetMemberType): Report the correct mapping for the MemberCore
+
+2005-10-14 Atsushi Enomoto <atsushi@ximian.com>
+
+ * cs-parser.jay, expression.cs : CS0214 was missing error location
+ for constants. Fixed bug #76404.
+
+2005-10-10 Raja R Harinath <rharinath@novell.com>
+
+ * 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 <marek.safar@seznam.cz>
+
+ Fix #76370.
+ * convert.cs (ExplicitConversionCore): Fixed object->enum
+ conversion.
+
+2005-10-07 Raja R Harinath <rharinath@novell.com>
+
+ 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 <rharinath@novell.com>
+
+ * convert.cs (GetConversionOperator): Rename from
+ GetConversionOperators. Move operator selection code from ...
+ (UserDefinedConversion): ... here.
+
+2005-10-06 Marek Safar <marek.safar@seznam.cz>
+
+ * convert.cs (ExplicitConversionCore): Removed duplicate enum
+ conversion.
+
+2005-10-05 Marek Safar <marek.safar@seznam.cz>
+
+ * 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 <rharinath@novell.com>
+
+ 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 <marek.safar@seznam.cz>
+
+ * 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 <marek.safar@seznam.cz>
+
+ * 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 <miguel@novell.com>
+
+ * 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 <miguel@novell.com>
+
+ * 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 <marek.safar@seznam.cz>
+
+ * 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 <marek.safar@seznam.cz>
+
+ * 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 <marek.safar@seznam.cz>
+
+ Fix #72930.
+ * const.cs (Const.ResolveValue): Check for assigning non-null
+ value to reference type.
+
+2005-09-26 Raja R Harinath <rharinath@novell.com>
+
+ 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 <miguel@novell.com>
+
+ * 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 <atsushi@ximian.com>
+
+ * attribute.cs : (Attribute.IsValidArgumentType): array of string/
+ Type/Object should be allowed as well. Fixed bug #75968.
+
+2005-09-05 Atsushi Enomoto <atsushi@ximian.com>
+
+ * 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 <martin@ximian.com>
+
+ * ecore.cs (PropertyExpr.ResolveAccessors): Cosmetic fix; make the
+ `SetMemberIsUsed()' work for generics, too.
+
+2005-10-04 Martin Baulig <martin@ximian.com>
+
+ * expression.cs (DelegateInvocation.EmitStatement): Make this work
+ for corlib. Fixes #75691.
+
+2005-09-28 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #76255.
+ * driver.cs: Fix compilation files with full root path.
+
+2005-09-25 Miguel de Icaza <miguel@novell.com>
+
+ * 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 <miguel@novell.com>
+
+ * 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 <rharinath@novell.com>
+
+ * 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 <rharinath@novell.com>
+
+ * 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 <martin@ximian.com>
+
+ * driver.cs: Removed a debugging FIXME.
+
+2005-09-21 Raja R Harinath <rharinath@novell.com>
+
+ * cs-parser.jay (type_arguments): Add CS1644 check.
+ * decl.cs (DeclSpace.AddToContainer): Restore CS0694 check.
+
+2005-09-15 Raja R Harinath <rharinath@novell.com>
+
+ * 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 <gnorton@customerdna.com>
+
+ * driver.cs: Ensure file handles are closed after parsing
+
+2005-09-05 Miguel de Icaza <miguel@novell.com>
+
+ * 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 <martin@ximian.com>
+
+ * 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 <atsushi@ximian.com>
+
+ * 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 <atsushi@ximian.com>
Fixed bug #75957.