+2004-10-20 Marek Safar <marek.safar@seznam.cz>
+
+ * class.cs (MethodCore.CheckBase): Add errors 505, 533, 544,
+ 561 report.
+ (PropertyBase.FindOutParentMethod): Add errors 545, 546 report.
+
+2004-10-18 Martin Baulig <martin@ximian.com>
+
+ Merged latest changes into gmcs. Please keep this comment in
+ here, it makes it easier for me to see what changed in MCS since
+ the last time I merged.
+
+2004-10-18 Martin Baulig <martin@ximian.com>
+
+ * statement.cs (Fixed.Resolve): Don't access the TypeExpr's
+ `Type' directly, but call ResolveType() on it.
+ (Catch.Resolve): Likewise.
+ (Foreach.Resolve): Likewise.
+
+2004-10-18 Martin Baulig <martin@ximian.com>
+
+ * expression.cs (Cast.DoResolve): Don't access the TypeExpr's
+ `Type' directly, but call ResolveType() on it.
+ (Probe.DoResolve): Likewise.
+ (ArrayCreation.LookupType): Likewise.
+ (TypeOf.DoResolve): Likewise.
+ (SizeOf.DoResolve): Likewise.
+
+2004-10-18 Martin Baulig <martin@ximian.com>
+
+ * expression.cs (Invocation.BetterFunction): Put back
+ TypeManager.TypeToCoreType().
+
+2004-10-18 Raja R Harinath <rharinath@novell.com>
+
+ * class.cs (FieldMember.DoDefine): Reset ec.InUnsafe after doing
+ the ResolveType.
+
+2004-10-18 Martin Baulig <martin@ximian.com>
+
+ * parameter.cs (Parameter.Resolve): Don't access the TypeExpr's
+ `Type' directly, but call ResolveType() on it.
+
+2004-10-18 Martin Baulig <martin@ximian.com>
+
+ * class.cs (FieldMember.Define): Don't access the TypeExpr's
+ `Type' directly, but call ResolveType() on it.
+ (MemberBase.DoDefine): Likewise.
+
+ * expression.cs (New.DoResolve): Don't access the TypeExpr's
+ `Type' directly, but call ResolveType() on it.
+ (ComposedCast.DoResolveAsTypeStep): Likewise.
+
+ * statement.cs (LocalInfo.Resolve): Don't access the TypeExpr's
+ `Type' directly, but call ResolveType() on it.
+
+2004-10-17 John Luke <john.luke@gmail.com>
+
+ * class.cs (Operator.GetSignatureForError): use CSharpName
+
+ * parameter.cs (Parameter.GetSignatureForError): Returns
+ correct name even if was not defined.
+
+2004-10-13 Raja R Harinath <rharinath@novell.com>
+
+ Fix #65816.
+ * class.cs (TypeContainer.EmitContext): New property.
+ (DefineNestedTypes): Create an emitcontext for each part.
+ (MethodCore.DoDefineParameters): Use container's emitcontext.
+ Pass type array to InternalParameters.
+ (MemberBase.DoDefine): Use container's emitcontext.
+ (FieldMember.Define): Likewise.
+ (Event.Define): Likewise.
+ (SetMethod.GetParameterInfo): Change argument to EmitContext.
+ Pass type array to InternalParameters.
+ (SetIndexerMethod.GetParameterInfo): Likewise.
+ (SetMethod.Define): Pass emitcontext to GetParameterInfo.
+ * delegate.cs (Define): Pass emitcontext to
+ ComputeAndDefineParameterTypes and GetParameterInfo. Pass type
+ array to InternalParameters.
+ * expression.cs (ParameterReference.DoResolveBase): Pass
+ emitcontext to GetParameterInfo.
+ (ComposedCast.DoResolveAsTypeStep): Remove check on
+ ec.ResolvingTypeTree.
+ * parameter.cs (Parameter.Resolve): Change argument to
+ EmitContext. Use ResolveAsTypeTerminal.
+ (Parameter.GetSignature): Change argument to EmitContext.
+ (Parameters.ComputeSignature): Likewise.
+ (Parameters.ComputeParameterTypes): Likewise.
+ (Parameters.GetParameterInfo): Likewise.
+ (Parameters.ComputeAndDefineParameterTypes): Likewise.
+ Re-use ComputeParameterTypes. Set ec.ResolvingTypeTree.
+ * support.cs (InternalParameters..ctor): Remove variant that takes
+ a DeclSpace.
+ * typemanager.cs (system_intptr_expr): New.
+ (InitExpressionTypes): Initialize it.
+
+2004-10-12 Chris Toshok <toshok@ximian.com>
+
+ * cs-parser.jay: fix location for try_statement and catch_clause.
+
+2004-10-11 Martin Baulig <martin@ximian.com>
+
+ * report.cs: Don't make --fatal abort on warnings, we have
+ -warnaserror for that.
+
+2004-10-07 Raja R Harinath <rharinath@novell.com>
+
+ More DeclSpace.ResolveType avoidance.
+ * decl.cs (MemberCore.InUnsafe): New property.
+ * class.cs (MemberBase.DoDefine): Use ResolveAsTypeTerminal
+ with newly created EmitContext.
+ (FieldMember.Define): Likewise.
+ * delegate.cs (Delegate.Define): Likewise.
+ * ecore.cs (SimpleName.ResolveAsTypeStep): Lookup with alias
+ only if normal name-lookup fails.
+ (TypeExpr.DoResolve): Enable error-checking.
+ * expression.cs (ArrayCreation.DoResolve): Use ResolveAsTypeTerminal.
+ (SizeOf.DoResolve): Likewise.
+ (ComposedCast.DoResolveAsTypeStep): Likewise.
+ (StackAlloc.DoResolve): Likewise.
+ * statement.cs (Block.Flags): Add new flag 'Unsafe'.
+ (Block.Unsafe): New property.
+ (Block.EmitMeta): Set ec.InUnsafe as appropriate.
+ (Unsafe): Set 'unsafe' flag of contained block.
+ (LocalInfo.Resolve): Use ResolveAsTypeTerminal.
+ (Fixed.Resolve): Likewise.
+ (Catch.Resolve): Likewise.
+ (Using.ResolveLocalVariableDecls): Likewise.
+ (Foreach.Resolve): Likewise.
+
+2004-10-05 John Luke <john.luke@gmail.com>
+
+ * cs-parser.jay: add location to error CS0175
+
+2004-10-04 Miguel de Icaza <miguel@ximian.com>
+
+ * ecore.cs (Expression.Constantity): Add support for turning null
+ into a constant.
+
+ * const.cs (Const.Define): Allow constants to be reference types
+ as long as the value is Null.
+
+2004-10-04 Juraj Skripsky <js@hotfeet.ch>
+
+ * namespace.cs (NamespaceEntry.Using): No matter which warning
+ level is set, check if this namespace name has already been added.
+
+2004-10-03 Ben Maurer <bmaurer@ximian.com>
+
+ * expression.cs: reftype [!=]= null should always use br[true,false].
+ # 67410
+
+2004-10-03 Marek Safar <marek.safar@seznam.cz>
+
+ Fix #67108
+ * attribute.cs: Enum conversion moved to
+ GetAttributeArgumentExpression to be applied to the all
+ expressions.
+
+2004-10-01 Raja R Harinath <rharinath@novell.com>
+
+ Fix #65833, test-300.cs, cs0122-5.cs, cs0122-6.cs.
+ * class.c (TypeContainer.DefineType): Flag error if
+ base types aren't accessible due to access permissions.
+ * decl.cs (DeclSpace.ResolveType): Move logic to
+ Expression.ResolveAsTypeTerminal.
+ (DeclSpace.ResolveTypeExpr): Thin layer over
+ Expression.ResolveAsTypeTerminal.
+ (DeclSpace.CheckAccessLevel, DeclSpace.FamilyAccess):
+ Refactor code into NestedAccess. Use it.
+ (DeclSpace.NestedAccess): New.
+ * ecore.cs (Expression.ResolveAsTypeTerminal): Add new
+ argument to silence errors. Check access permissions.
+ (TypeExpr.DoResolve, TypeExpr.ResolveType): Update.
+ * expression.cs (ProbeExpr.DoResolve): Use ResolveAsTypeTerminal.
+ (Cast.DoResolve): Likewise.
+ (New.DoResolve): Likewise.
+ (InvocationOrCast.DoResolve,ResolveStatement): Likewise.
+ (TypeOf.DoResolve): Likewise.
+
+ * expression.cs (Invocation.BetterConversion): Return the Type of
+ the better conversion. Implement section 14.4.2.3 more faithfully.
+ (Invocation.BetterFunction): Make boolean. Make correspondence to
+ section 14.4.2.2 explicit.
+ (Invocation.OverloadResolve): Update.
+ (Invocation): Remove is_base field.
+ (Invocation.DoResolve): Don't use is_base. Use mg.IsBase.
+ (Invocation.Emit): Likewise.
+
+2004-09-27 Raja R Harinath <rharinath@novell.com>
+
+ * README: Update to changes.
+
+2004-09-24 Marek Safar <marek.safar@seznam.cz>
+
+ * cs-parser.jay: Reverted 642 warning fix.
+
+2004-09-23 Marek Safar <marek.safar@seznam.cz>
+
+ Fix bug #66615
+ * decl.cs (FindMemberWithSameName): Indexer can have more than
+ 1 argument.
+
+2004-09-23 Marek Safar <marek.safar@seznam.cz>
+
+ * expression.cs (LocalVariableReference.DoResolveLValue):
+ Do not report warning 219 for out values.
+ (EmptyExpression.Null): New member to avoid extra allocations.
+
+2004-09-23 Marek Safar <marek.safar@seznam.cz>
+
+ * cs-parser.jay: Fix wrong warning 642 report.
+
+ * cs-tokenizer.cs (CheckNextToken): New helper;
+ Inspect next character if is same as expected.
+
+2004-09-23 Martin Baulig <martin@ximian.com>
+
+ * convert.cs (Convert.ImplicitReferenceConversion): Some code cleanup.
+ (Convert.ImplicitReferenceConversionExists): Likewise.
+
+2004-09-23 Marek Safar <marek.safar@seznam.cz>
+
+ * class.cs (Operator.Define): Add error 448 and 559 report.
+
+2004-09-22 Marek Safar <marek.safar@seznam.cz>
+
+ * class.cs (MemberBase.IsTypePermitted): New protected
+ method for checking error CS0610.
+
+2004-09-22 Marek Safar <marek.safar@seznam.cz>
+
+ * class.cs (TypeContainer.HasExplicitLayout): New property
+ Returns whether container has StructLayout attribute set Explicit.
+ (FieldMember): New abstract class for consts and fields.
+ (FieldMember.ApplyAttributeBuilder): Add error 636 and 637 report.
+ (Field): Reuse FieldMember.
+
+ * const.cs (Const): Reuse FieldMember.
+
+ * rootcontext.cs: EmitConstants call moved to class.
+
+2004-09-22 Martin Baulig <martin@ximian.com>
+
+ Thanks to Peter Sestoft for this bug report.
+
+ * expression.cs (Conditional): If both the `trueExpr' and the
+ `falseExpr' is a NullLiteral, return a NullLiteral.
+
+2004-09-22 Martin Baulig <martin@ximian.com>
+
+ * statement.cs (Foreach.EmitCollectionForeach): If we're in an
+ iterator, use `enumerator.EmitThis()' instead of `ec.EmitThis()'
+ for the "get_Current" call.
+
+2004-09-22 Martin Baulig <martin@ximian.com>
+
+ Marek and me just fixed one of our oldest bugs: #28562 :-)
+
+ * ecore.cs (EnumConstant.GetValueAsEnumType): New public method.
+
+ * attribute.cs (Attribute.GetAttributeArgumentExpression): If
+ we're an EnumConstant, just return that.
+ (Attribute.Resolve): GetAttributeArgumentExpression() may give us
+ an EnumConstant. In this case, we need to use GetValueAsEnumType()
+ to get the value which'll actually be written into the attribute.
+ However, we have to use GetValue() to access the attribute's value
+ in the compiler.
+
+2004-09-22 Marek Safar <marek.safar@seznam.cz>
+
+ * constant.cs (Constant.IsNegative): New abstract property
+ IsNegative.
+
+ * expression.cs (ArrayAccess.DoResolve): Add warning 251.
+ (StackAlloc.DoResolve): Reused IsNegative.
+
+2004-09-21 Martin Baulig <martin@ximian.com>
+
+ * codegen.cs (VariableStorage): Don't store the ILGenerator here;
+ if we're used in an iterator, we may be called from different
+ methods.
+
+ * statement.cs (Foreach.EmitFinally): Only emit an `Endfinally' if
+ we actually have an exception block.
+
+2004-09-20 John Luke <jluke@cfl.rr.com>
+
+ * class.cs, cs-parser.jay: Improve the error report for 1520:
+ report the actual line where the error happens, not where the
+ class was declared.
+
+ * assign.cs, delegate.cs, ecore.cs, expression.cs, statement.cs:
+ Pass location information that was available elsewhere.
+
+2004-09-19 Sebastien Pouliot <sebastien@ximian.com>
+
+ * codegen.cs: Fix bug #56621. It is now possible to use MCS on the MS
+ runtime to delay sign assemblies.
+
+2004-09-19 Miguel de Icaza <miguel@ximian.com>
+
+ * cs-parser.jay: Do not report the stack trace, this is barely
+ used nowadays.
+
+2004-08-22 John Luke <john.luke@gmail.com>
+
+ * driver.cs : check that a resource id is not already used
+ before adding it, report CS1508 if it is, bug #63637
+
+2004-09-19 Miguel de Icaza <miguel@ximian.com>
+
+ * ecore.cs: Removed dead code.
+
+2004-09-18 Marek Safar <marek.safar@seznam.cz>
+
+ * class.cs: Do not report warning CS0067 on the interfaces.
+
+2004-09-16 Marek Safar <marek.safar@seznam.cz>
+
+ * cs-parser.jay: Add error 504 report.
+
+2004-09-16 Marek Safar <marek.safar@seznam.cz>
+
+ * rootcontext.cs: WarningLevel is 4 by default now.
+
+ * statement.cs (Fixed.Resolve): Do not null
+ VariableInfo.
+
+2004-09-16 Marek Safar <marek.safar@seznam.cz>
+
+ Fixed bug #55780
+ * ecore.cs (PropertyExpr.FindAccessors): Do not perform
+ deep search when property is not virtual.
+ (PropertyExpr.ResolveAccessors): Make one call for both
+ accessors.
+
+2004-09-15 Marek Safar <marek.safar@seznam.cz>
+
+ Fixed bug #65766
+ * statement.cs: Error 152 report constains also location.
+
+2004-09-15 Marek Safar <marek.safar@seznam.cz>
+
+ Fixed bug #65766
+ * const.cs: Explicitly set constant as static.
+
+2004-09-15 Marek Safar <marek.safar@seznam.cz>
+
+ Fixed bug #64226
+ * cs-parser.jay: Add error 1017 report.
+
+2004-09-15 Marek Safar <marek.safar@seznam.cz>
+
+ Fixed bug #59980, #64224
+ * expression.cs (Invocation.DoResolve): Fixed error CS0571 test.
+
+ * typemanager.cs (IsSpecialMethod): Simplified
+
+2004-09-14 Marek Safar <marek.safar@seznam.cz>
+
+ * decl.cs (MemberCore.Emit): Resuscitated VerifyObsoleteAttribute
+ condition with better params.
+
+2004-09-14 Marek Safar <marek.safar@seznam.cz>
+
+ Fixed bug #65238
+ * attribute.cs (Resolve): Property has to have both
+ accessors.
+
+2004-09-14 Martin Baulig <martin@ximian.com>
+
+ * decl.cs (MemberCore.Emit): Always call VerifyObsoleteAttribute().
+
+2004-09-14 Marek Safar <marek.safar@seznam.cz>
+
+ Fixed bug #61902
+ * codegen.cs (TestObsoleteMethodUsage): Trace when method is
+ called and is obsolete then this member suppress message
+ when call is inside next [Obsolete] method or type.
+
+ * expression.cs: Use TestObsoleteMethodUsage member.
+
+2004-09-14 Martin Baulig <martin@ximian.com>
+
+ * cs-parser.jay: Sync a bit with the GMCS version.
+
+2004-09-14 Martin Baulig <martin@ximian.com>
+
+ * cs-parser.jay (CSharpParser): Don't derive from GenericsParser.
+ (CSharpParser.yacc_verbose_flag): New public field.
+
+ * genericparser.cs: Removed.
+
+2004-09-14 Raja R Harinath <rharinath@novell.com>
+
+ * cs-parser.jay (event_declaration): Re-enable cs0071 error.
+
+2004-09-13 Marek Safar <marek.safar@seznam.cz>
+
+ * class.cs (MethodCore.CheckBase): Fix bug #65757.
+
+2004-09-10 Martin Baulig <martin@ximian.com>
+
+ Backported my MemberName changes from GMCS into MCS.
+
+ - we are now using a special `MemberName' class instead of using
+ strings; in GMCS, the `MemberName' also contains the type
+ arguments.
+
+ - changed the grammar rules a bit:
+ * the old `member_name' is now a `namespace_or_type_name':
+ The rule is that we use `namespace_or_type_name' everywhere
+ where we expect either a "member name" (GetEnumerator) or a
+ "member name" with an explicit interface name
+ (IEnumerable.GetEnumerator).
+ In GMCS, the explicit interface name may include type arguments
+ (IEnumerable<T>.GetEnumerator).
+ * we use `member_name' instead of just `IDENTIFIER' for
+ "member names":
+ The rule is that we use `member_name' wherever a member may
+ have type parameters in GMCS.
+
+ * decl.cs (MemberName): New public class.
+ (MemberCore.MemberName): New public readonly field.
+ (MemberCore.ctor): Take a `MemberName' argument, not a string.
+ (DeclSpace): Likewise.
+
+ * delegate.cs (Delegate.ctor): Take a MemberName, not a string.
+ * enum.cs (Enum.ctor): Likewise.
+
+ * namespace.cs (AliasEntry.Alias): Changed type from Expression to
+ MemberName.
+ (AliasEntry.ctor): Take a MemberName, not an Expression.
+ (AliasEntry.UsingAlias): Likewise.
+
+ * class.cs (TypeContainer.ctor): Take a MemberName, not a string.
+ (IMethodData.MemberName): Changed type from string to MemberName.
+ (MemberBase.ExplicitInterfaceName): Likewise.
+ (AbstractPropertyEventMethod.SetupName): Make this private.
+ (AbstractPropertyEventMethod.ctor): Added `string prefix'
+ argument; compute the member name here.
+ (AbstractPropertyEventMethod.UpdateName): Recompute the name based
+ on the `member.MemberName' and the `prefix'.
+
+ * cs-parser.jay (attribute_name): Use `namespace_or_type_name',
+ not `type_name'.
+ (struct_declaration): Use `member_name' instead of `IDENTIFIER';
+ thus, we get a `MemberName' instead of a `string'. These
+ declarations may have type parameters in GMCS.
+ (interface_method_declaration, delegate_declaration): Likewise.
+ (class_declaration, interface_declaration): Likewise.
+ (method_header): Use `namespace_or_type_name' instead of
+ `member_name'. We may be an explicit interface implementation.
+ (property_declaration, event_declaration): Likewise.
+ (member_name): This is now just an `IDENTIFIER', not a
+ `namespace_or_type_name'.
+ (type_name, interface_type): Removed.
+ (namespace_or_type_name): Return a MemberName, not an Expression.
+ (primary_expression): Use `member_name' instead of `IDENTIFIER';
+ call GetTypeExpression() on the MemberName to get an expression.
+ (IndexerDeclaration.interface_type): Changed type from string to
+ MemberName.
+ (MakeName): Operate on MemberName's instead of string's.
+
+2004-09-13 Raja R Harinath <rharinath@novell.com>
+
+ Fix bug #55770.
+ * namespace.cs (AliasEntry.Resolve): Implement section 16.3.1.
+ (NamespaceEntry.Lookup): Add new argument to flag if we want the
+ lookup to avoid symbols introduced by 'using'.
+ * rootcontext.cs (NamespaceLookup): Update.
+
+2004-09-12 Marek Safar <marek.safar@seznam.cz>
+
+ * class.cs (TypeContainer.DoDefineMembers): Do not call
+ DefineDefaultConstructor for static classes.
+
+2004-09-12 Marek Safar <marek.safar@seznam.cz>
+
+ * attribute.cs (Attribute.Resolve): Add error 653 report.
+
+ * class.cs (Class.ApplyAttributeBuilder): Add error 641
+ report.
+ (Method.ApplyAttributeBuilder): Add error 685 report.
+ (Operator.Define): Add error 564 report.
+
+ * cs-tokenizer.cs (handle_hex): Add error 1013 report.
+
+ * expression.cs (Invocation.DoResolve): Add error
+ 245 and 250 report.
+
+ * parameter.cs (Parameter.ApplyAttributeBuilder): Add
+ error 674 report.
+
+2004-09-11 Marek Safar <marek.safar@seznam.cz>
+
+ * class.cs (ConstructorInitializer.Resolve):
+ Wrong error number (515->516).
+
+2004-09-11 Marek Safar <marek.safar@seznam.cz>
+
+ * class.cs (Indexer.Define): Add error 631 report.
+
+2004-09-11 Marek Safar <marek.safar@seznam.cz>
+
+ * ecore.cs (Error_NegativeArrayIndex): Fix 248 error.
+
+2004-09-11 Marek Safar <marek.safar@seznam.cz>
+
+ * expression.cs (Probe.DoResolve): Add error CS0241 report.
+
+2004-09-10 Marek Safar <marek.safar@seznam.cz>
+
+ * cs-parser.jay: Added error CS0241 report.
+
+2004-09-10 Raja R Harinath <rharinath@novell.com>
+
+ * cs-parser.jay (fixed_statement): Introduce a scope for the
+ declaration in the 'fixed' statement.
+
2004-09-09 Marek Safar <marek.safar@seznam.cz>
* cs-parser.jay: Added CS0230 error report.
* enum.cs (EnumMember): Clean up to reuse the base structures
-2004-09-03 Martin Baulig <martin@ximian.com>
-
- Merged latest changes into gmcs. Please keep this comment in
- here, it makes it easier for me to see what changed in MCS since
- the last time I merged.
-
2004-09-03 Martin Baulig <martin@ximian.com>
* class.cs (TypeContainer.DefineDefaultConstructor): Put this back