2003-05-28 Miguel de Icaza <miguel@ximian.com>
[mono.git] / mcs / mcs / ChangeLog
index 9d88f6dd020c5a31872f1ca851af56a30832bb01..85b3686a988f04c3c8df508d8e22185dbf67a429 100755 (executable)
@@ -1,3 +1,86 @@
+2003-05-28  Miguel de Icaza  <miguel@ximian.com>
+
+       * cs-parser.jay: Update grammar to include anonymous methods.
+       
+       * anonymous.cs: new file.
+
+2003-05-27  Miguel de Icaza  <miguel@ximian.com>
+
+       * class.cs (Field.Define): Add missing test for pointers and
+       safety. 
+
+2003-05-27  Ravi Pratap  <ravi@ximian.com>
+
+       * expression.cs (ArrayAccess.GetStoreOpCode): For System.IntPtr,
+       we use the stobj opcode.
+
+       (ArrayCreation.EmitDynamicInitializers): Revert Miguel's patch
+       since it wasn't the correct fix. 
+
+       It still is puzzling that we are required to use stobj for IntPtr
+       which seems to be a ValueType.
+
+2003-05-26  Miguel de Icaza  <miguel@ximian.com>
+
+       * ecore.cs (SimpleName.SimpleNameResolve): Consider using aliases
+       during regular simple name resolution.   Now, the trick is that
+       instead of returning for processing the simplename, we do a
+       TypeManager.LookupType (ie, a rooted lookup as opposed to a
+       contextual lookup type).   If a match is found, return that, if
+       not, return for further composition.
+
+       This fixes long-standing 30485.
+
+       * expression.cs (ArrayCreation.EmitDynamicInitializers): When
+       using the address to initialize an object, do an Stobj instead of
+       using the regular Stelem.
+
+       (IndexerAccess.Emit, IndexerAccess.EmitAssign):
+       Pass `is_base_indexer' to Invocation.EmitCall instead of false.
+       Because if we are a BaseIndexerAccess that value will be true.
+       Fixes 43643.
+
+       * statement.cs (GotoCase.Resolve): Return after reporting an
+       error, do not attempt to continue. 
+
+       * expression.cs (PointerArithmetic.Emit): If our operand is a
+       long, convert our constants to match the operand before
+       multiplying.  Convert to I type before adding.   Fixes 43670.
+       
+2003-05-14  Ravi Pratap  <ravi@ximian.com>
+
+       * enum.cs (ImplicitConversionExists) : Rename to
+       ImplicitEnumConversionExists to remove ambiguity. 
+
+       * ecore.cs (NullCast): New type of cast expression class which
+       basically is very similar to EmptyCast with the difference being
+       it still is a constant since it is used only to cast a null to
+       something else
+       (eg. (string) null)
+
+       * convert.cs (ImplicitReferenceConversion): When casting a null
+       literal, we return a NullCast.
+
+       * literal.cs (NullLiteralTyped): Remove - I don't see why this
+       should be around anymore.
+
+       The renaming (reported was slightly wrong). Corrections:
+
+       ConvertImplicitStandard -> ImplicitConversionStandard
+       ConvertExplicitStandard -> ExplicitConversionStandard
+
+       * expression.cs (StaticCallExpr.MakeSimpleCall): Resolve arguments
+       before passing them in !
+
+       * convert.cs (ImplicitConversionStandard): When comparing for
+       equal expr and target types, ensure that expr is not a
+       NullLiteral.
+
+       In general, we must not be checking (expr_type ==
+       target_type) in the top level conversion methods
+       (ImplicitConversion, ExplicitConversion etc). This checking is
+       done in the methods that they delegate to.
+
 2003-05-20  Miguel de Icaza  <miguel@ximian.com>
 
        * convert.cs: Move Error_CannotConvertType,
        * parameter.cs (Parameter.ExternalType): drop the two arguments,
        they were unused.
 
-s2003-05-11  Miguel de Icaza  <miguel@ximian.com>
+2003-05-11  Miguel de Icaza  <miguel@ximian.com>
 
        * class.cs (MethodData.Define): Do not set the `newslot' on
        interface members, if they are also flagged as "override".